zoukankan      html  css  js  c++  java
  • 【NLP】UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 74752: ordinal not in rang

    这几天在用python进行自然语言处理,遇到了一个编码的问题:UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 74752: ordinal not in range(128)。谷歌和百度了相关的关键词都没有找到很好的解决方案,最后自己调试出解决方法。解决方法如下:

    1.看编辑器给出的错误提示:'ascii' codec can't decode byte 0xd1,意思是要被decode(解码)的字符为0xd1,应该是utf8编码的,不能用ascii来解码,应该用utf8来解码;

    2.看你发生错误的需要解码或者编码的字符串,使用 chardet 对字符串进行编码检测,然后针对字符串的编码进行相应的解码和编码。

    >>> import chardet

    >>> chardet.detect(rawdata)

    {'confidence': 0.98999999999999999, 'encoding': 'GB2312'}

    >>>


    chardet的安装方法如下:

    从http://pypi.python.org/pypi/chardet下载chardet后,解压chardet压缩包,直接将里面的chardet文件夹放在应用程序目录下,就可以使用import chardet开始使用chardet了。



  • 相关阅读:
    十天冲刺:第四天
    十天冲刺:第三天
    会议2.3
    会议2.2
    会议2.1
    团队绩效管理
    Alpha版(内部测试版)发布
    意见汇总
    建议汇总
    会议1.10
  • 原文地址:https://www.cnblogs.com/haoaina521/p/3332127.html
Copyright © 2011-2022 走看看