我有一個用 us-ascii 編碼的檔案,如下一個命令所示:
$ file -i /tmp/text
/tmp/text: text/plain; charset=us-ascii
但它包含許多 latin-1 編碼的字符,例如:
Hij verblijft samen met zijn gezin in Belgi\xc3\xab
Activist Roger Espa\xc3\xb1ol raakte zijn oog kwijt door een politiekogel
我想用正確的字符替換這些錯誤的字符。
我嘗試了什么:
$ iconv -f latin1 -t utf-8 text > text.1
with open("text") as f: text = f.read().encode("latin-1").decode("utf-8")
with open("text", "w") as f: f.write(text)
ftfy -e latin-1 text > text.1
以及上述嘗試的許多變體。任何幫助表示贊賞
uj5u.com熱心網友回復:
試試這個 python 腳本:
#!/usr/bin/env python3
import re
def convert(s):
return b'%c' % int(s.group(0)[2:],16)
with open("text", 'rb') as f:
text = re.sub(rb'\\x..', convert, f.read())
with open("text", "wb") as f:
f.write(text)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/466760.html
上一篇:在heredocs中轉義的問題
