У меня есть браузер, который отправляет символы utf-8 на мой сервер Python, но когда я получаю его из строки запроса, Python возвращает кодировку ASCII. Как я могу преобразовать простую строку в UTF-8?
ПРИМЕЧАНИЕ. Строка, передаваемая из Интернета, уже закодирована в UTF-8, я просто хочу, чтобы Python рассматривал ее как UTF-8, а не ASCII.
python
python-2.7
unicode
utf-8
Бен Чен
источник
источник
"some_string".encode('utf-8').decode('utf-8')
Ответы:
^ Это разница между байтовой строкой (plain_string) и строкой Unicode.
^ Преобразование в Unicode и указание кодировки.
источник
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 2: invalid start byte
Это мой код: ret = [] для строки в csvReader: cline = [] для строки в строке: unicodestr = unicode (elm, 'utf-8') cline.append (unicodestr) ret .append (cline)unicode()
не существуют.u
обратно вstr
формат (конвертироватьu
обратно вs
)?Если описанные выше методы не работают, вы также можете указать Python игнорировать части строки, которые он не может преобразовать в utf-8:
источник
Может быть, это немного излишне, но когда я работаю с ascii и unicode в одних и тех же файлах, повторное декодирование может быть проблемой, вот что я использую:
источник
Добавив следующую строку в начало вашего .py файла:
позволяет вам кодировать строки непосредственно в вашем скрипте, например так:
источник
from __future__ import unicode_literals
сверху или используйтеu''
префикс. Не используйте не-ascii символы вbytes
литералах. Получить utf-8 байт вы можетеutf8bytes = unicode_text.encode('utf-8')
позже, если это необходимо.from __future__ import unicode_literals
поможет мне преобразовать строку с не-ascii символами в utf-8?Если я вас правильно понимаю, в вашем коде есть байтовая строка в кодировке utf-8.
Преобразование байтовой строки в строку Unicode известно как декодирование (unicode -> byte-string кодирует).
Вы делаете это с помощью функции Unicode или метода декодирования . Либо:
Или:
источник
источник
В Python 3.6 у них нет встроенного метода unicode (). По умолчанию строки уже сохранены как Unicode, и преобразование не требуется. Пример:
источник
Переведите с помощью ord () и unichar (). Каждый символ Юникода имеет ассоциированное число, что-то вроде индекса. Таким образом, у Python есть несколько методов для перевода между символом и его числом. Недостатком является пример. Надеюсь, это поможет.
источник
Да, вы можете добавить
в первой строке вашего исходного кода.
Вы можете прочитать более подробную информацию здесь https://www.python.org/dev/peps/pep-0263/
источник