1. 程式人生 > >python2.x中使用中文的問題:#coding=utf-8

python2.x中使用中文的問題:#coding=utf-8

1. 舉個栗子:

打算把一個含有中文的長字串寫到txt文字中去,在定義它的時候就報錯了。關鍵程式碼段如下:

#coding = utf-8
str_test = "這只是一個例子\nThis is an example"

報錯資訊如下:

SyntaxError: Non-ASCII character '\xe8' in file xx\xxxx.py on line xx, but no encoding declared; 

最後更改如下,就能正常運行了:

#coding=utf-8
str_test = "這只是一個例子\nThis is an example"
2. 結論:如果要在python2.x的檔案中使用中文,則必須在第一行或者第二行寫上註釋,否則python2.x會預設使用ASCII編碼。千萬不能在第一種寫法的等號兩邊加空格
#coding=utf-8
# -*- coding:utf-8 -*-
3. 參考python PEP,這個magic comment有以下幾種寫法:
# coding=<encoding name>

或者:

#!/usr/bin/python
# -*- coding: <encoding name> -*-

或者:

#!/usr/bin/python
# vim: set fileencoding=<encoding name> :

其實只要匹配如下的正則表示式就可以了:

^[ \t\v]*#.*?coding[:=][ \t
]*([-_.a-zA-Z0-9]+)

相關推薦

python2.x使用中文的問題#coding=utf-8

1. 舉個栗子: 打算把一個含有中文的長字串寫到txt文字中去,在定義它的時候就報錯了。關鍵程式碼段如下: #coding = utf-8 str_test = "這只是一個例子\nThis is an example" 報錯資訊如下: Syntax

python字元編碼:coding utf-8, unicde, defaultencoding, UnicodeDecodeError, UnicodeEncodeError

2.位元組與字元 計算機儲存的任何資料,包括各種文字、圖片、音視訊檔案等等,實際上都是一串二進位制數字01位元組序列組成的。相信大家都知道,一個位元組Byte(B)是8個位元bit(b)。 而字元,自然就是符號了。比如說二十六個英文字母,阿拉伯數字,以及在pyt

Python關於coding=utf-8以及中文字元前加u的解釋

寫了很久的Python了,每次寫之前都要在開頭加上coding=utf-8,只知道是設定編碼格式,但並沒有太在意,今天在寫socket程式設計時才發現編碼格式的重要性。 一、關於開頭coding=utf-8 開頭的coding=utf-8和coding:utf-8的作用是一

Python的編碼註釋# -*- coding:utf-8 -*- (即在py中文)

自動解決pycharm下,中文輸出的問題 - 偏執狂xj的個人空間 - 開源中國社群  http://my.oschina.net/longmaox/blog/180745 因為編碼的原因,如果直接用: ? 1 print "你好!";

【轉載】關於Python腳本開頭兩行的#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件編碼類型

ron 標識 精確 log 解析器 開始 html weight .org 下面的內容來自:http://www.cnblogs.com/blueskylcc/p/5332642.html, 對方也是轉的,不過沒有找到轉載的出處; 1、#!/usr/bin/python

Python程序#-*-coding: UTF-8 -*-的作用

world! gif 中文 text 技術 odi 支持 程序 默認 1.通常我們在pycharm中寫程序的時候會寫上#-*coding: UTF-8 -*- 如: #!/usr/bin/env python3#-*-coding: UTF-8 -*-#Author xia

[Python]編碼宣告coding:utf-8還是coding=urf-8

      推薦: #!/usr/bin/env python3 # -*- coding: utf-8 -*-     我們知道在Python原始碼的標頭檔案中要宣告編碼方式,如果你不只是會用到ascii碼,很多人都寫得都有點差別: #co

王權富貴出錯集Python指令碼開頭兩行的#!/usr/bin/env python和# -*- coding: utf-8 -*-的作用

1.#!/usr/bin/env python 是用來說明指令碼語言是 python 的 是要用 /usr/bin下面的程式(工具)python,這個直譯器,來解釋 python 指令碼,來執行 python 指令碼的。     2、# -*- coding:

Python的 #!/usr/bin/python 和 # -*- coding: utf-8 -*-

#!/usr/bin/python 是用來說明指令碼語言是python的 是要用/usr/bin下面的程式(工具)python,這個直譯器,來解釋python指令碼,來執行python指令碼的。 # -*- coding: utf-8 -*- 是用來指定檔案編碼為

關於Python指令碼開頭兩行的#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定

#!/usr/bin/python 是用來說明指令碼語言是python的 是要用/usr/bin下面的程式(工具)python,這個直譯器,來解釋python指令碼,來執行python指令碼的。 # -*- coding: utf-8 -*- 是用來指定檔案編

python中文顯示亂碼,已經在開頭有了coding utf-8

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C++GB2312字串和UTF-8之間的轉換-json中文亂碼問題

在程式設計過程中需要對字串進行不同的轉換,特別是Gb2312和Utf-8直接的轉換。在幾個開源的魔獸私服中,很多都是老外開發的,而暴雪為了能 夠相容世界上的各個字符集也使用了UTF-8。在中國使用VS(VS2005以上版本)開發基本都是使用Gb2312的Unicode字符

接入WxPusher微信推送服務出現錯誤Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

# 背景 使用WxPusher微信推送服務 ,可以及時的將服務的一些執行異常資訊,傳送到自己的微信上,方便了解服務的執行狀態(PS:這個服務是免費的)。 你可以在這裡看到WxPusher微信推送服務的接入說明文件:[https://wxpusher.zjiecode.com/docs/](https://w

Spring MVC 前後臺傳遞json格式數據 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

support style logs ica spring enc json格式數據 分享 技術 報錯如下: Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

關於編碼之一Unicode/UTF-8/UTF-16/UTF-32

規則 系統默認 標記 大小端 post mark 編碼方式 一位 end 1.關於編碼,繞不開下面這些概念 ①Unicode/UTF-8/UTF-16/UTF-32 ②大小端字節序(big-endian/little-endian) ③BOM(Byte Order M

細說Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-4

字節數 什麽 ans 聯盟 賦值 strong any 江湖 技術分享 轉載自:http://www.cnblogs.com/malecrab/p/5300503.html ================== 1. Unicode與ISO 10646 全世界很多個國家都

pythonsys.setdefaultencoding('utf-8')的作用

error: ron load 而不是 ans Coding nbsp 我們 set 在python中,編碼解碼其實是不同編碼系統間的轉換,默認情況下,轉換目標是Unicode,即編碼unicode→str,解碼str→unicode,其中str指的是字節流,而str.de

[eclipse]添加python默認模板,在首行添加編碼方式(# -*- coding: utf-8 -*-)

編碼方式 window pytho 編碼 分享圖片 技術分享 eclips 方式 pre 1、從eclipse的windows->preference 2、參照如下圖,添加指定的utf-8編碼方式 [eclipse]添加python默認模板,在首行添加編碼方式(#

Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported for @RequestBody XXX

orm app support ram supported json 重新 使用 rip 問題描述 前端使用ajax發送post請求發送Json數據,spring mvc報Content type ‘application/x-www-form-urlencoded;ch

python 讀取資料出現UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid contin

之前寫程式時也出現過類似錯誤,每次解決了到第二次遇見又忘了具體方法,這次記錄一下。 一、字元編碼問題 先介紹一下字元編碼問題 1.ASCLL與GB2312 由於計算機是美國人發明的,因此,最早只有127個字元被編碼到計算機裡,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為