關於Python的預設字元集

來源:互聯網
上載者:User

關於Python的預設字元集

本文將簡要介紹Python程式解析使用的字元集曆史和配置方法。

背景: 在寫指令碼程式的時候難免會設計一些和中文相關的變數內容。這個時候對於一個Python新手(包括我在內)來說如何配置python使之能夠正確識別程式內的中文內容就會變得非常頭疼。本文將會簡要介紹Python字元集的配置方法和一些相關曆史資訊。

 

Python的預設字元集

Python的預設字元集在幾個大版本中有過改變,以下是各個版本的預設字元集列舉:

  • Python2.1及以前: latin1
  • Python2.3及之後,Python2.5以前:latin1 (但是會對非ASCII字元集字元提出WARNING)
  • Python2.5及以後:ASCII

此外在PEP上也有提議在後續版本中將預設字元集調整為UTF-8

 

如何配置預設字元集(Python2.5以前)

配置Python當前指令檔解析使用的預設字元集在2.5以前是很困難的。因為這些老版本不支援類似shebang的coding配置方式。雖然2.5以前的老版本已經過時了,這裡還是提一下這些版本配置字元集的方法。具體配置原理是通過sys.setdefaultencoding()函數。但是糾結的是,這個函數site.py(一個在Python啟動時自動啟動並執行指令碼)中被刪除了。於是網上就出現了以下幾種版本的方法:

  • reload(sys)
  • 修改sitecustomize.py配置全域預設字元集

兩種方法都僅僅是能work,且不優雅。更具體的操作方式可以參看stackoverflow上的討論

 

如何配置預設字元集(Python2.5及以後)

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 

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版]

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼]

Python指令碼擷取Linux系統資訊

在Ubuntu下用Python搭建案頭演算法交易研究環境

Python 語言的發展簡史

Python 的詳細介紹:請點這裡
Python 的:請點這裡 

本文永久更新連結地址:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.