(Python 3.3.2)我不得不通過調用re.escape()返回一些非ASCII轉義字符。我看到here和here方法不起作用。我正在使用100%UTF-8環境。Python3:未修改非ascii字符
# pure ASCII string : ok
mystring = "a\n" # expected unescaped string : "a\n"
cod = codecs.getencoder('unicode_escape')
print(cod(mystring))
# non ASCII string : method #1
mystring = "€\n"
# equivalent to : mystring = codecs.unicode_escape_decode(mystring)
cod = codecs.getdecoder('unicode_escape')
print(cod(mystring))
# RESULT = ('â\x82¬\n', 5) INSTEAD OF ("€\n", 2)
# non ASCII string : method #2
mystring = "€\n"
mystring = bytes(mystring, 'utf-8').decode('unicode_escape')
print(mystring)
# RESULT = â\202¬ INSTEAD OF "€\n"
這是一個錯誤?我誤解了一些東西嗎?
任何幫助,將不勝感激!
PS:我編輯我的帖子感謝Michael Foukarakis的評論。
你在哪裏執行在終端/ CMD或文件? – badc0re
'「€\\ n」'不是一個Unicode轉義字符串,所以你不能將它解碼爲任何有意義的東西。 ''\ n「',如果它被Unicode轉義了,就會變成'b'\\ u20ac \\ n''。所以,你好像誤解了編碼。 –
好點:我編輯了我的帖子。但是我的問題與(unicode)字符相同。 – suizokukan