Подтвердить что ты не робот

Какой префикс u в строке Python?

Как в:

u'Hello'

Я предполагаю, что он указывает "Unicode", правильно ли это?

Если да, то когда это доступно?

4b9b3361

Ответ 2

U в u'Some String' означает, что ваша строка является строкой Unicode.

В: Я ужасно, ужасно спешу, и я приземлился здесь из Google Поисков. Я пытаюсь записать эти данные в файл, я получаю сообщение об ошибке, и мне нужна мертвая версия, которая, вероятно, имеет недостатки, на этот раз.

A: Вы действительно должны прочитать Joel Абсолютный минимум Каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Unicode и наборах символов (без отговорок!) на наборах символов.

Q: sry no time code pls

A: Хорошо. попробуйте str('Some String') или 'Some String'.encode('ascii', 'ignore'). Но вы действительно должны прочитать некоторые ответы и обсуждение Преобразование строки Unicode и this отлично, отлично, праймер на кодировке символов.

Ответ 3

Я предполагаю, что он указывает "Юникод", правильно ли это?

Да.

Если да, то когда это доступно?

Python 2.x.

В Python 3.x строки используют Unicode по умолчанию, и нет необходимости в префиксе u. Примечание: в Python 3.0-3.2 u является синтаксической ошибкой. В Python 3. 3+ снова законно упростить работу с 2/3 совместимыми приложениями.

Ответ 5

Все строки, предназначенные для людей, должны использовать u "".

Я обнаружил, что следующий подход очень помогает при работе с строками Python: Все Строки манифеста Python должны использовать синтаксис u"". Синтаксис "" предназначен только для байтовых массивов.

Прежде чем начнется треск, позвольте мне объяснить. Большинство программ Python начинаются с использования "" для строк. Но тогда им нужно поддерживать документацию через Интернет, поэтому они начинают использовать "".decode, и внезапно они получают исключения во всем мире об декодировании этого и того же - все из-за использования "" для строк. В этом случае Unicode действительно действует как вирус и будет наносить ущерб.

Но, если вы будете следовать моему правилу, у вас не будет этой инфекции (потому что вы уже заразитесь).

Ответ 6

Это Unicode.

Просто поставьте переменную между str(), и она будет работать нормально.

Но если у вас есть два списка, например:

a = ['co32','co36']
b = [u'co32',u'co36']

Если вы отметите set(a)==set(b), оно будет выглядеть как False, но если вы сделаете следующее:

b = str(b)
set(a)==set(b)

Теперь результат будет True.

Ответ 7

Я пришел сюда, потому что у меня был синдром смешного чарса в выводе моих requests. Я думал, что response.text даст мне правильно декодированную строку, но в выводе я нашел забавные двойные символы, где должны были быть немецкие умлауты.

Оказывается, response.encoding каким-то образом был пустым, и поэтому response не знал, как правильно декодировать контент, и просто рассматривал его как ASCII (я полагаю).

Мое решение состояло в том, чтобы получить необработанные байты с помощью "response.content" и вручную применить к нему decode('utf_8'). Результатом было schöne Umlaute.

Правильно декодированный

мех

против неправильно декодированного

fĂźr