004.Python 中文編碼

Python 中文編碼

前面章節中咱們已經學會了如何用 Python 輸出 "Hello, World!",英文沒有問題,可是若是你輸出中文字符"你好,世界"就有可能會碰到中文編碼問題。php

Python 文件中若是未指定編碼,在執行過程會出現報錯:html

#!/usr/bin/python print "你好,世界";

以上程序執行輸出結果爲:python

  File "test.py", line 2 SyntaxError: Non-ASCII character '\xe4' in file test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Python中默認的編碼格式是 ASCII 格式,在沒修改編碼格式時沒法正確打印漢字,因此在讀取中文時會報錯。windows

解決方法爲只要在文件開頭加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就好了eclipse

注意:#coding=utf-8 的 = 號兩邊不要空格。編輯器

實例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- print "你好,世界";

運行實例 »

輸出結果爲:學習

你好,世界

因此若是你們在學習過程當中,代碼中包含中文,就須要在頭部指定編碼。編碼

注意:Python3.X 源碼文件默認使用utf-8編碼,因此能夠正常解析中文,無需指定 UTF-8 編碼。spa

注意:若是你使用編輯器,同時須要設置 py 文件存儲的格式爲 UTF-8,不然會出現相似如下錯誤信息:調試

SyntaxError: (unicode error) utf-8 codec cant decode byte 0xc4 in position 0: invalid continuation byte

Pycharm 設置步驟:

  • 進入 file > Settings,在輸入框搜索 encoding
  • 找到 Editor > File encodings,將 IDE Encoding 和 Project Encoding 設置爲utf-8。

 

筆記

1、其實pycharm右下角就能夠切換編碼,不用這麼麻煩:

可是,若是你文件已經指定了編碼 # -*- coding: UTF-8 -*-,這裏就不能修改了:

2、python2.x 腳本加上 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 後windows 命令提示符下輸出中文字符串還會出現亂碼。

解決方法須要先使用 decode("utf-8") 轉換成 utf-8 編碼,而後使用 encode("gbk") 轉換成 gbk 編碼,才能在 windows 命令提示符下正常輸出中文。

例如:

>>> # -*- coding: UTF-8 -*- >>> s="我是中文 " >>> print s.decode("utf-8").encode("gbk")

緣由是 windows 命令提示符的顯示編碼爲 gbk 編碼。

在命令提示符下使用 chcp 查詢編碼。

"活動代碼頁:936" 表明命令提示符的編碼爲 "gbk"

"活動代碼頁:65001" 表明命令提示符的編碼爲 "utf-8"

3、在 Eclipse 中調試 python 例子時候,提示:

SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb4 in position 0:invalid start byte,

基本知識:在 python 中默認的編碼格式是 utf-8。因此怎麼會報不能按 utf-8 來解碼嘞?一頭霧水啊。

問題的解決:

一、Eclipse 中 Window->Preferences:

最後在 Eclipse 安裝目錄中的 eclipse.ini 文件最後加上 -Dfile.encoding=UTF-8 就好了,最終寫入文件的中文就不會出現亂碼的問題了。

二、使用 notepad++ 打開 test.py 發現文件存儲的格式是 ANSI

只要將保存文件的格式換成 UTF-8 就行了。

相關文章
相關標籤/搜索