У меня возникли трудности с пониманием перевода выражений юникода в их соответствующие символы. Я смотрел спецификацию unicode, и я столкнулся с различными строками, которые отформатированы следующим образом: U+1F600
. Насколько я видел, не существует встроенной функции, которая знает, как перевести эти строки в правильное форматирование для Python, например \U0001F600
.Представление Unicode для форматирования Unicode?
В моей программе я сделал небольшое регулярное выражение, которое найдет эти шаблоны U\+.{5}
и заменит U+
на \U000
. Однако я обнаружил, что этот синтаксис не одинаковый для всех символов Юникода, таких как объединение с нулевой шириной, которое фактически должно быть переведено с U+200D
на \u200D
.
Поскольку я не знаю каждого варианта правильной последовательности escape-кода Unicode, какой метод лучше всего подходит для этого случая? Это то, что есть только конечное количество этих специальных символов, которые я могу просто проверить или полностью ли я об этом не так?
Python версия 2.7.
Извините, я добавлю, что это. Это Python 2.7. :) – lindsay
'u '\ u200D' == u '\ U0000200D'' – ThisSuitIsBlackNot
Спасибо за это! Интересно, добавит ли добавленный пример дополнительный ноль. Если бы это было так, возможно, это могло бы решить неоднородную ошибку. - Оказывается, что это происходит, так как '\ U00001F600' - это другой символ. Спасибо, в любом случае! – lindsay