2017-10-21 296 views
1

一個文本文件,有一個像如何使用python修復包含字符 u2014, u2017等的文本文件?

內容 「長度:根據客戶\ NEWLINENEWLINE此功能需要| \ U2022材質:CFC | \ U2022」

我試圖將其轉換爲字符。如何閱讀,將其轉換爲字符並將其保存。

screenshot

+0

那些'\ uXXXX'代碼是unicode字符的Python轉義文字。這個「文本文件」是從哪裏來的?看起來它可能是通過轉儲某些Python unicode對象的'repr()而沒有正確編碼它們而寫的。 – Iguananaut

+2

這是源自JSON還是來自其他來源?這很重要;不同的來源以不同的方式編碼Unicode碼點JSON'\ uhhhh'代碼點實際上是UTF-16值,這意味着非BMP點需要**兩個**轉義序列。 –

回答

1

一般來說,沿

uni_chr_re = re.compile(r'\\u([a-fA-F0-9]{4})') 

lines = [] 
with open(filename) as f: 
    for line in f: 
     lines.append(uni_chr_re.sub(lambda m: unichr(int(m.group(1), 16)), line)) 

是一般的做法線的東西,但具體取決於細節,比如這段文本的來源,如馬亭pointed out

相關問題