【发布时间】:2017-09-05 15:56:17
【问题描述】:
我正在尝试过滤 textdata 以仅包含拉丁字符,以进行进一步的文本分析。原始文本源很可能包含韩语字母。这在文本文件中显示如下:
\xe7\xac\xac8\xe4\xbd\x8d ONE PIECE FILM GOLD Blu-ray GOLDEN LIMITED EDITION
删除这些最快/最简单/最完整的方法是什么?我尝试制作一个可以删除所有 \xXX 组合的脚本,但事实证明这有很多例外情况。
有没有办法从 utf-8 编码文本中删除所有非拉丁字符?
提前致谢。
解决方案:
import string
textin = b'\xe7\xac\xac8\xe4\xbd\x8d ONE PIECE FILM GOLD Blu-ray GOLDEN LIMITED EDITION'.decode('UTF-8')
outtext = ''
for char in textin:
if char in string.printable:
outtext += char
print(outtext)
我的数据由于某种原因被解码为比特,不要问我为什么。 :D
【问题讨论】:
-
“非拉丁语”还是“非 ASCII”?
-
s.decode('utf-8').encode('latin1', 'ignore').decode('latin1'). -
这是中文,不是韩文。