zoukankan      html  css  js  c++  java
  • python运行显示编码错误

    python中运行显示编码错误一般有2种原因:

    编码与译码的方式不一致

    在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息:

    SyntaxError: Non-ASCII character 'xe5' in file *******

    【原因】

    python解释器的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符。

    【解决办法】

    在Python源文件的最开始一行,加入一句:

    # coding=UTF-8(等号换为”:“也可以)

    注意:等号左右两边没有空格

    补充:

    .py文件的编码方式由编辑器决定,而在中文环境下,编辑器的编码方式一般是utf-8,python解释器在译码时,译码方式为要与源文件的编码方式一致。

    具体可参考官方文档:https://www.python.org/dev/peps/pep-0263/

    存在部分字符无法译码的情况

    编码与译码的方式是一致的,但是部分字符无法译码。

    读取中文txt文件时,经常会出现: ‘gbk' codec can't decode bytes in position 31023: illegal multibyte sequence

    这种情况就是文本里含有gbk编码方式中没有的字符

    最好的解决办法:

    使用gb18030编码方式,因为gb18030编码方式包含gbk,支持的字符数更多,并且加入'ignore'忽略无法读取的字符。

    例如;

    open('../hlp_stop_words.txt', encoding='gb18030', errors='ignore')

    补充

    python2中的文件路径不要有中文,会出现一些奇特的bug,但是python3中就没有这种情况。

  • 相关阅读:
    yii 引入文件
    CodeForces 621C Wet Shark and Flowers
    面试题题解
    POJ 2251 Dungeon Master
    HDU 5935 Car(模拟)
    HDU 5938 Four Operations(暴力枚举)
    CodeForces 722C Destroying Array(并查集)
    HDU 5547 Sudoku(dfs)
    HDU 5583 Kingdom of Black and White(模拟)
    HDU 5512 Pagodas(等差数列)
  • 原文地址:https://www.cnblogs.com/mlgjb/p/9761326.html
Copyright © 2011-2022 走看看