簡體   English   中英

如何解碼轉義的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM