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



  • 相关阅读:
    进程(第三部分)
    02_jni_hello_c函数介绍
    01_ndk目录介绍
    00_前情回顾
    06_锅炉压力案例_progressbar实现
    05_锅炉压力案例_java实现
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
  • 原文地址:https://www.cnblogs.com/haoaina521/p/3332127.html
Copyright © 2011-2022 走看看