Python 3 сделал их избыточными, поскольку тип строки по умолчанию - Unicode. В версиях с 3.0 по 3.2 они были удалены, но они были повторно добавлены в 3.3+ для совместимости с Python 2, чтобы облегчить переход со 2 на 3.
Ответ 2
U в u'Some String' означает, что ваша строка является строкой Unicode.
Вопрос: Я ужасно, ужасно спешу и попал сюда из поиска Google. Я пытаюсь записать эти данные в файл, я получаю сообщение об ошибке, и мне нужно самое простое, возможно ошибочное, решение в эту секунду.
A: Отлично. попробуйте str('Some String') или 'Some String'.encode('ascii', 'ignore'). Но вам действительно следует прочитать некоторые ответы и обсуждение по преобразованию строки Unicode и этому превосходному, просто превосходному учебнику по кодировке символов.
Ответ 3
Я предполагаю, что это указывает на "Unicode", это правильно?
ДА.
Если да, то с каких пор он доступен?
Python 2.x.
В Python 3.x строки по умолчанию используют Unicode, и в u префиксе нет необходимости. Примечание: в Python 3.0-3.2 u является синтаксической ошибкой. В Python 3.3+ это снова законно, чтобы упростить написание приложений, совместимых на 2/3.
Ответ 4
Я пришел сюда, потому что у меня был забавный синдром символа в моем requests выводе. Я думал, что response.text даст мне правильно декодированную строку, но в выходных данных я обнаружил забавные двойные символы там, где должны были быть немецкие умляуты.
Оказывается, response.encoding каким-то образом был пустым, и поэтому response не знал, как правильно декодировать содержимое, и просто обрабатывал его как ASCII (я думаю).
Мое решение состояло в том, чтобы получить необработанные байты с 'response.content' и вручную применить decode('utf_8') к нему. Результатом был schöne Umlaute.