gpt4 book ai didi

python - 使用python识别垃圾unicode字符串

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:04 25 4
gpt4 key购买 nike

我的脚本是从csv文件中读取数据,csv文件可以有多个英文或非英文字串。

有时文本文件中有垃圾字符串,我想识别这些字符串并跳过这些字符串并处理其他字符串

doc = codecs.open(input_text_file, "rb",'utf_8_sig')
fob = csv.DictReader(doc)
for row, entry in enumerate(f):
if is_valid_unicode_str(row['Name']):
process_futher

def is_valid_unicode_str(value):
try:
function
return True
except UnicodeEncodeError:
return false

csv 输入:

"Name"
"袋è¢âdcx€¹Ã¤Â¸Å½Ã¦Å“‹å‹们çâ€ÂµÃ¥Â­Âå•â€"
"元大寶來證券"
"John Dove"

我想 defile 函数 is_valid_unicode_str() ,它将识别垃圾字符串并只处理有效字符串。

我尝试使用 decode is 但它在解码垃圾字符串时没有失败

value.decode('utf8')

The expected output are string with Chinese and English string to be process

能否指导我如何实现过滤有效 Unicode 文件的功能?

最佳答案

(此处为 ftfy 开发人员)

我发现文字很可能是'袋袋与 friend 们电子商'。我不得不猜测“友”、“子”和“商”这些字符,因为一些不可打印的字符是您问题中的字符串中缺少的字符。猜的时候,我从少量的可能性中挑选了最常见的字符。而且我不知道“dcx”去了哪里,也不知道它为什么在那里。

谷歌翻译在这里不是很有用,但它似乎与电子商务有关。

所以这里是你的文本发生的一切:

  1. 它被编码为 UTF-8 并错误地解码为 sloppy-windows-1252,两次
  2. 它在 UTF-8 序列的中间插入了字母“dcx”
  3. windows-1252 中不存在的字符——字节值为 81、8d、8f、90 和 9d——已被删除
  4. 从末尾删除了一个不间断空格(字节值 a0)

如果只发生第一个问题,ftfy.fix_text_encoding 将能够修复它。剩余的问题可能只是在您尝试将字符串放到 Stack Overflow 上时发生的。

所以这是我的建议:

  • 找出谁一直将数据错误地解码为 sloppy-windows-1252,并让他们将其解码为 UTF-8。
  • 如果您再次遇到这样的字符串,请在其上尝试 ftfy.fix_text_encoding

关于python - 使用python识别垃圾unicode字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29071995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com