Python與中文

來源:互聯網
上載者:User
作者:老王

前段時間受Erlang誘惑,疏遠了Python。不過我已經迷途知返,今天聊聊Python與中文。

先看看Python3.0裡面的情況:

首先,建立檔案c:/chinese.py,檔案編碼是utf-8,檔案內容如下:

print("中文")

在IDLE裡執行:

>>> import sys
>>> sys.path.append("c://")
>>> import chinese
中文

一切都很完美!

再試試其它編碼,把chinese.py的檔案編碼改成gbk,再執行上面的操作,結果報錯:

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
    import chinese
File "c:/chinese.py", line 1
SyntaxError: Non-UTF-8 code starting with '/xd6' in file c:/chinese.py on line 1,
but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

看來,要想一個辦法聲明編碼才行,按照PEP0263的介紹修改chinese.py檔案內容:

# coding=gbk
print("中文")

再執行上面的操作,一切順利。

很多時候,你可能會發現其它形式的編碼聲明方式,如下:

# -*- coding: <encoding name> -*-
# vim: set fileencoding=<encoding name> :

這兩種方式同樣符合PEP0263的要求,並且在設定了python編碼的同時還順帶設定了emacs / vim的編碼。

再看看Python2.6裡面的情況:

一樣的chinese.py檔案,如果不聲明編碼的話,不管是utf-8還是gbk,都會報錯:

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
    import chinese
File "c:/chinese.py", line 1
SyntaxError: Non-ASCII character '/xd6' in file c:/chinese.py on line 1,
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details (chinese.py, line 1)

總結:

使用非ASCII字元時,在Python3.0裡面,如果是utf-8編碼,可以不用聲明編碼。在Python2.X裡面,不管什麼編碼都要聲明編碼!

========================================

Python資料:

http://wiki.woodpecker.org.cn/moin/
http://www.elias.cn/Develop/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.