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了。



  • 相关阅读:
    Designing With Web Standard(一)
    再听姜育恒
    终于找到Effective C Sharp电子版了
    继续下一个题目
    想做就做,要做得漂亮
    空悲还是空杯
    整理,中庸
    分布式系统设计随想
    日志log4
    log4net更换目录
  • 原文地址:https://www.cnblogs.com/haoaina521/p/3332127.html
Copyright © 2011-2022 走看看