【发布时间】:2014-01-23 16:30:55
【问题描述】:
所以我一直在研究这个问题,到目前为止,我正在使用一个字符串并执行以下操作:
title = title.decode('windows-1252')
title = title.encode('utf-8','replace')
我的字符串如下,虽然可以有其他字符没有去掉。
Bus • Lorry • IT & Construction
标点已删除:
title = title.translate(string.punctuation)
这似乎变成了(删除标点符号后):
Bus • Lorry • IT Construction
虽然现在我遇到了一个问题,我将字符串拆分并尝试将其重新连接在一起。我将其拆分为:
['Bus', '\xc3\xa2\xe2\x82\xac\xc2\xa2', 'Lorry', '\xc3\xa2\xe2\x82\xac\xc2\xa2', 'IT', 'Construction']
作者: words = text.split(' ')
一旦我每个单词都删除了一些词干,就尝试重新加入:
text = ' '.join([stemmer.stem(word) for word in words])
然后,此时我遇到了一个问题:
'ascii' 编解码器无法解码位置 0 中的字节 0xc3:序数不在范围内(128)
但是我很困惑,因为阅读网站,我需要编码和解码,我认为我已经正确完成了......
【问题讨论】:
-
您应该在
unicode中处理文本,稍后仅在输出之前处理,在utf8中再次编码。你可以试试吗? -
另请注意,您实际上并没有删除标点符号,您只是将其重新编码为 utf8。
-
我正在删除它:title = title.translate(string.punctuation) 我只是没有把那部分放在上面
-
那些奇怪的角色到底是哪里来的?
-
我的数据库 - 有一些部分包含带有项目符号的字符串
标签: python string list utf-8 replace