Скажем, у вас есть строкаКакой способ конвертировать в Юникод?
s = "C:\Users\Eric\Desktop\beeline.txt"
, который вы хотите переместить в Unicode, если это не так.
return s if PY3 or type(s) is unicode else unicode(s, "unicode_escape")
Если есть шанс, что строка будет иметь \ U (т.е. каталог пользователя), и вы, вероятно, получите ошибки декодирования Unicode.
UnicodeDecodeError: 'unicodeescape' codec can't decode bytes in position 3-4: truncated \UXXXXXXXX escape
Что случилось с просто заставить его выглядеть примерно так:
return s if PY3 or type(s) is unicode else unicode(s.encode('string-escape'), "unicode_escape")
Или явно проверка на наличие \ U ок, как это единственный угловой случай?
Я хочу, чтобы код будет работать на обоих питона 2 & 3.
Вы можете использовать сырые литералов здесь: 's = г «C: \ Users \ Eric \ Desktop \ beeline.txt» ' – georg
Обязательно четко продумайте, что делать с входом типа' s = r 'C: \ Users \ Eric \ Desktop \ pr \ U000000eat- \ U000000e0-портер "'. – Alfe