Python版解決中文字元串錯誤
在制作工具時使用到了中文字元,結果出現了錯誤。網上搜尋了各種方法仍然無效,最後通過多次的debug和嘗試才解決。為此寫下來做為參考。
系統為
Ubuntu1404
,安裝了
Python 2.7.6
和
Python 3.4.3
。具體的代碼如下:
name = "簽名檔案.png"
print(name)
- 1
- 2
- 3
- 4
把該代碼儲存到
code.py
檔案中,然後運作,出錯的資訊如下:
$ python code.py
File "code.py", line 2
SyntaxError: Non-ASCII character '\xe7' in file code.py on line 23,
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
- 5
- 6
解決方法就是在檔案開關加入以下聲明:
#coding=utf8
該聲明告訴編譯器源代碼檔案使用
utf-8
格式進行編碼。
該方法的原理在于
python2
預設使用
ASCII
編碼格式,而
ASCII
編碼中不包括中文字元,隻有
Unicode
或者
utf-8
編碼才支援中文等字元。通過這種聲明,就是告訴編譯器使用
utf-8
格式進行編碼,這樣就能識别中文字元。
當然還有另外一種解決方法,那就是使用
python3
進行編譯,因為
python3
Unicode
編碼格式.
具體的操作如下:
$python3 code.py
簽名檔案.png
其實問題比較簡單,隻要說清楚問題發生的背景和解決的原理就可以。
原文位址
https://blog.csdn.net/talk_8/article/details/82228547