天天看點

【Python實戰】python中含有中文字元無法運作

1.問題描述

Python列印中文報錯

[root@TDExpress1620_Sles11]$  cat 2.py
#!/usr/bin/python
print("百度經驗")      

執行報錯

[root@TDExpress1620_Sles11]$  python 2.py 
File "2.py", line 2
SyntaxError: Non-ASCII code starting with \'\xb0\' in file 2.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details      

或者報錯

[root@TDExpress1620_Sles11]$  python 2.py 
File "2.py", line 2
SyntaxError: (unicode error) \'utf-8\' codec can\'t decode byte 0xb4 in position 0: invalid start byte      

2.原因分析

原因一:使用ptyhon 2.x預設編碼格式為ASCII,列印中文時,如果程式中沒有額外指定編碼的話,會出現錯誤。

原因二:使用Python3.x預設編碼格式是 UTF-8,列印中文時亂碼,可能是檔案存儲的格式是ANSI,可以使用notepad++打開檔案确認。

原因三:顯示亂碼,系統的字元集不為UTF-8

【Python實戰】python中含有中文字元無法運作

3.解決方法

原因一:在第一行#!/usr/bin/python後面依次嘗試加入如下語句,指定編碼字元集:

#coding=utf-8
或
#-*-coding:utf-8 -*-
或
#-*-coding:GBK -*-      

 原因二:隻用notepad++打開test.py >> 菜單欄Encoding(編碼)>> Convert to UTF-8(轉化成utf-8)

【Python實戰】python中含有中文字元無法運作

 原因三:設定LC_ALL的值為zh_cn.utf-8

export LC_ALL=zh_cn.utf-8   #加入環境變量可以永久生效      

參考文檔:

如何讓python支援中文

python3:(unicode error) \'utf-8\' codec can\'t decode

python中含有中文字元無法運作的解決方法