如何使用python修复包含字符\ u2014,\ u2017等的文本文件?
问题描述:
一个文本文件,有一个像如何使用python修复包含字符 u2014, u2017等的文本文件?
内容 “长度:根据客户\ NEWLINENEWLINE此功能需要| \ U2022材质:CFC | \ U2022”
我试图将其转换为字符。如何阅读,将其转换为字符并将其保存。
答
一般来说,沿
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。
那些'\ uXXXX'代码是unicode字符的Python转义文字。这个“文本文件”是从哪里来的?看起来它可能是通过转储某些Python unicode对象的'repr()而没有正确编码它们而写的。 – Iguananaut
这是源自JSON还是来自其他来源?这很重要;不同的来源以不同的方式编码Unicode码点JSON'\ uhhhh'代码点实际上是UTF-16值,这意味着非BMP点需要**两个**转义序列。 –