“ascii”编解码器无法对位置 * 或不在范围内的字符进行编码 (128)

2024-01-13

stackoverflow 上有一些线程,但我找不到整个问题的有效解决方案。

我从 urllib 读取函数收集了大量文本数据并将其存储在 pickle 文件中。

现在我想将这些数据写入文件。 写作时我遇到类似的错误 -

'ascii' codec can't encode character u'\u2019' in position 16: ordinal not in range(128)

并且大量数据正在丢失。

我想 urllib 读取的数据是字节数据

我试过了

   1. text=text.decode('ascii','ignore')
   2. s=filter(lambda x: x in string.printable, s)
   3. text=u''+text
      text=text.decode().encode('utf-8')

但我仍然遇到类似的错误。 有人可以指出一个正确的解决方案吗? 并且编解码器也会剥离工作。 如果冲突字节没有作为字符串写入文件,因此损失被接受,我没有问题。


你可以通过smart_str of Django模块。试试这个:

from django.utils.encoding import smart_str, smart_unicode

text = u'\u2019'
print smart_str(text)

您可以通过使用管理员权限启动命令 shell 并运行以下命令来安装 Django:

pip install Django
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“ascii”编解码器无法对位置 * 或不在范围内的字符进行编码 (128) 的相关文章

随机推荐