![](/img/trans.png)
[英]How to decode partially escaped unicode string in python (mixed unicode and escaped unicode)?
[英]How to decode escaped Unicode characters?
我正在嘗試用實際字符替換轉義的 Unicode 字符:
string = "\\u00c3\\u00a4"
print(string.encode().decode("unicode-escape"))
預期的 output 是ä
,實際的ä
是 ä 。
("\\u00c3\\u00a4"
.encode('latin-1')
.decode('unicode_escape')
.encode('latin-1')
.decode('utf-8')
)
編解碼器文檔頁面指出:
這意味着“unicode-escape”的 output 將是 latin1,即使 python 的默認值是 utf-8。
所以,你只需要編碼回 latin1 並解碼回 utf-8
mixed_string_to_be_unescaped = '\u002Fq:85\\u002FczM"},{\"name\":\"Santé\",\"parent_name\":\"Santé'
val = codecs.decode(mixed_string_to_be_unescaped, 'unicode-escape')
val = val.encode('latin1').decode('utf-8')
print(val)
/q:85/czM"},{"name":"Santé","parent_name":"Santé
上面的解決方案有效,但對我來說並不清楚,因為我不明白為什么我應該在 unicode_escape 之前轉換為 latin-1(發現它是自動執行此操作),也不明白為什么它在未轉義的字符串中使用 unicode_escape。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.