本文將簡要介紹Python程序解析使用的字符集歷史和配置方法。
背景: 在寫腳本程序的時候難免會設計一些和中文相關的變量內容。這個時候對於一個Python新手(包括我在內)來說如何配置python使之能夠正確識別程序內的中文內容就會變得非常頭疼。本文將會簡要介紹Python字符集的配置方法和一些相關歷史信息。
Python的默認字符集在幾個大版本中有過改變,以下是各個版本的默認字符集列舉:
此外在PEP上也有提議在後續版本中將默認字符集調整為UTF-8
配置Python當前腳本文件解析使用的默認字符集在2.5以前是很困難的。因為這些老版本不支持類似shebang的coding配置方式。雖然2.5以前的老版本已經過時了,這裡還是提一下這些版本配置字符集的方法。具體配置原理是通過sys.setdefaultencoding()
函數。但是糾結的是,這個函數site.py
(一個在Python啟動時自動運行的腳本)中被刪除了。於是網上就出現了以下幾種版本的方法:
sitecustomize.py
配置全局默認字符集兩種方法都僅僅是能work,且不優雅。更具體的操作方式可以參看stackoverflow上的討論
Python2.5
以後的默認字符集配置方式就簡單了很多。只要在Shebang後面(即#! /usr/bin/python
這一行之後), 緊跟上一行字符集配置行即可。字符集配置行的書寫規則需要符合這麼一個正則coding[:=]\s*([-\w.]+)
。也就是說以下幾種寫法都可以生效:
#!/usr/bin/python
# coding=utf8
或者
#!/usr/bin/python
# -*- coding: utf8 -*-
更或者
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
這些都是可以work的。
--------------------------------------分割線 --------------------------------------
CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm
《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm
《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm
Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm
在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm
Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm
Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡