2015-08-20 5 views
1

Объект unicode u"ÿ" приведен в Python. Как я могу преобразовать его в соответствующий синтаксис перехода unicode "\\u00FF"? Не удалось получить unicode-escape для работы здесь.Преобразование unicode в unicode escape-синтаксис

Редактировать: В моем случае задан строковый объект с содержимым r"\u00FF". С другой стороны, у меня есть объект unicode (сверху), и мне нужно сделать сравнение строк, чтобы проверить, равны ли они. Мне нужен синтаксис escape-кода unicode как строковый объект из символа Юникода сверху, чтобы сделать это.

ответ

1
r"\u%04X" % ord(u"ÿ") 

Это сделал трюк для меня. Он возвращает строковый объект ('\\u00FF'), который я могу использовать для сравнения строк. Он не подходит для символов Unicode выше U+FFFF, но это не обязательно в моем случае.

+0

FYI: используйте это, чтобы преобразовать целую строку 'r '\ u% 04X" * len (string))% ord (string) ' – HelloWorld

+0

Это штраф для U + 0000FF, но он не будет генерировать полезный вывод для символов выше U + 00FFFF. – bobince

+0

Вы имеете в виду, что это нормально для U + 00FF, но он не генерирует полезный вывод для символов abive 'U + FFFF'. Но в моем случае это не было необходимо. Но вы правы, эта информация отсутствовала. – HelloWorld

1
>>> u"ÿ".encode('raw-unicode-escape') 
'\xff' 
+1

К сожалению, это возвращает только строку с кодировкой utf-8, а не эквивалентный синтаксис escape-кода unicode. – HelloWorld

+1

Пожалуйста, подумайте над редактированием сообщения, чтобы добавить больше объяснений о том, что делает ваш код, и почему он решит проблему. Ответ, который в основном содержит только код (даже если он работает), обычно не помогает OP понять их проблему. – SuperBiasedMan

+1

@HelloWorld: это неправда. В строке Unicode '\ xNN' относится к символу Unicode U + 0000NN. 'u '\ xFF'' и' u' \ u00FF'' - это точно такое же значение. – bobince

Смежные вопросы