⑴ python讀寫有中文的文件時,是否需要設置編碼格式
需要:
with open("路徑","模式",encoding="utf8") as f:
如果不確定編碼格式,後面讀取可能會出問題
⑵ Python中怎麼定義中文編碼
在程序的第一行指定中文編碼方式,並且輸入字元為unicode,然後編碼成gb18030方式,完整程序如下:
-------------------------------------
# -*- coding: gb18030 -*-
#!/usr/bin/python
cont = raw_input( u"請輸入:".encode("gb18030") )
print cont
-------------------------------------
輸入的內容也可以是中文
⑶ python 中文亂碼問題
記事本是用utf-8保存你下載了東西的。你下載下來的不是utf-8,保存下來中文當然就亂碼了。而gbk和utf-8里英文的編碼值都一樣,所以不受影響。
一個方法是你留意下目標頁面的charset 和 contentType,另一個方法是你復制一個目標頁面的字,放cmd里看它的編碼長度,以此來判斷它的原來編碼。
⑷ Python 中文編碼問題
我這邊輸出沒有什麼問題。
下面是輸出:
i = 1
s['statuses'][0]['text'] = 出軌是男人的天性,防小三是女人一生的戰役。
s['statuses'][1]['text'] = 漂亮女孩有時候比普通女孩更可憐。男人可以很坦然的拒絕普通女孩的感情和身體,但是男人會欺騙漂亮女孩的感情從而得到她的身體。這就是為什麼古人說紅顏命薄,你們感受一下。
s['statuses'][2]['text'] = 留幾手教你如何利用空閑時間學習
。。。
i = 2
s['statuses'][20]['text'] = 罵人,其實內容並不重要,一個小蘿莉,滿嘴臟話,也嚇不住人。
。。。
i = 3
s['statuses'][40]['text'] = 我不就是在你家住的時候吃了幾只燒雞沒給你錢么?至於這么編排我么?這情節都是你在哪本言情小說里扒出來的吧?
後面省略了。
⑸ python2默認不支持中文編碼,怎麼實現對中文編碼的支持
Python 輸出 "Hello, World!",英文沒有問題,但是如果你輸出中文字元"你好,世界"就有可能會碰到中文編碼問題。
Python 文件中如果未指定編碼,在執行過程會出現報錯:
12
#!/usr/bin/pythonprint "你好,世界";
以上程序執行輸出結果為:
12
File "test.py", line 2SyntaxError: Non-ASCII character '\xe4' in file test.py on line 2, but no encoding declared; see hp-0263.html for details
Python中默認的編碼格式是 ASCII 格式,在沒修改編碼格式時無法正確列印漢字,所以在讀取中文時會報錯。
解決方法為只要在文件開頭加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了。
實例(Python 2.0+)
1234
#!/usr/bin/python# -*- coding: UTF-8 -*- print "你好,世界";
輸出結果為:
1
你好,世界
所以如果大家再學習過程中,代碼中包含中文,就需要在頭部指定編碼。
注意:Python3.X 源碼文件默認使用utf-8編碼,所以可以正常解析中文,無需指定 UTF-8 編碼。
⑹ Python2.7 中文字元編碼,使用Unicode時,選擇什麼編碼格式
終端顯示字元的編碼(windows下終端是cmd,linux下是各種terminal,遠程登錄是putty或者xshell)
shell環境的編碼。比如中文版windows用的是gbk(向下兼容gb2312),大多數linux發行版使用的是utf-8(LANG=zh_CN.UTF-8)。
文本文件的編碼。這個通常取決於你的編輯器,而且有的編輯器支持多種編碼的話,你可以在文本開頭位置指定編輯器使用特定編碼。比如# -*- coding: utf8 -*-,vim看到這行會默認將這個腳本認定為utf-8兼容編碼格式。
應用程序的內部編碼。一個字元串,作為數據只是一個位元組數組,但是作為字元的數組,就有一個解析方式。java和python的內部字元編碼是utf-16,python和java都支持用不同的編碼來對位元組數組進行decode來得到字元數組。
⑺ python編碼的問題
你好:
編碼的問題確實頭疼;
我在博客園摘抄了一些編碼問題;
這個問題主要是因為:
print 是將字元串轉化為系統的編碼輸出。
而list存儲的你設置的編碼。
⑻ python2.7列印中文亂碼怎麼辦
由於python默認以ASCII編碼,所以不支持中文。所以我們需要在代碼前面寫上「#_*_ coding:utf-8 _*_」或者#coding=utf-8.當然,如
果你代碼中沒有中文,就不需要加上了。
還有一個原因,由於python所運行的操作系統決定的,windows默認的編碼方式是GBK編碼,所以這也是一個導致中文亂碼的原因之
一。
建議是不管你用什麼,先在代碼前面加上這一串,一定不會出現問題。
推薦學習《Python教程》。
⑼ python命令行輸入中文亂碼怎麼辦
python2.X,代碼中指定了UTF-8,但是在cmd命令行窗口時,列印的中文仍然會亂碼。
在python3不存在該問題
運行結果:
原因
中文windows默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。
相關推薦:《Python基礎教程》
解決方法
有如下兩種方法可以解決這個問題
方法一
我們可以通過先把中文解碼為unicode,然後再轉化為gbk來解決這個問題:
修改後運行結果:
方法二
當然,我們也可以通過改變cmd命令行窗口的輸出格式來解決這個問題:
·chcp 65001 就是換成UTF-8代碼頁
·chcp 936 可以換回默認的GBK
但是這樣就降低了腳本的兼容性,在其他環境運行的時候可能還會出現這樣的錯誤,而且可能會影響其他腳本運行,所以推薦使用第一種方法。
⑽ python有哪幾種編碼方式
第一種:ASCII碼。是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,它是現今最通用的單位元組編碼系統,並等同於國際標准IS/IEC
646。
由於計算機是美國人發明的,因此,最早只有127個字母被編碼到計算機李,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母a的編碼是97,後128個稱為擴展ASCII碼。
第二種:GBK和GB2312。能在計算機中顯示中文字元是至關重要的,然而ASCII表裡一個偏旁部首都沒有,所以我們需要一個關於中文和數字對應的關系表,一個位元組只能最多表示256個字元,用處理中文顯然一個位元組是不夠的,所以我們需要採用兩個位元組來表示,所以中國制定了GB2312編碼,用來將中文編寫進去。
第三種:Unicode。因為各個國家都有一套自己的編碼,所以無法避免沖突,因此Unicode誕生了。它可以把所有語言都統一到一套編碼里,這樣就不會存在亂碼問題了,現代操作系統和大多數編程語言都直接支持Unicode。
第四種:UFT-8。基於節約的原則,出現了把Unicode編碼轉化為可變長編碼的UTF-8編碼。而UTF-8編碼把一個Unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文字母被編碼成一個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組,如果你要傳輸的文本包含大量英文字元,用UTF-8編碼就能節省空間。