字串在python內部的表示是
unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。
decode的作用是將其他編碼的字串轉換成unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字串str1轉換成unicode編碼。
encode的作用是將unicode編碼轉換成其他編碼的字串,如str2.encode('gb2312'),表示將unicode編碼的字串str2轉換成gb2312編碼。
因此,轉碼的時候一定要先搞明白,字串str是什麼編碼,然後decode成unicode,然後再encode成其他編碼
python在執行py檔案時,預設不能解析中文字元,如果程式中需要使用中文,或者新增了中文注釋。會直接報」syntaxerror: non-ascii character",語法失敗。
在源**第一行新增:
# -*- coding: utf-8 -*-
用來指定檔案編碼為utf-8。在執行py就不會報錯。
在windows儲存的文字檔案都是ansi編碼格式,python讀出的中文字串可以直接顯示。
#coding:utf-8
import
string
import
sysf = open(sys.ar**[1],'r'
)while
true:
line =f.readline()
ifline:
line
else
:
break
f.close()
如果需要對讀入的中文字元操作,比如:
print '輸入的是:%s' % line
輸出結果卻是這樣:
杈撳靉鐨勬槸中文
在這裡要對讀入的字串進行轉碼,將gbk、gb2312轉換為unicode.
s = u'中文: %s
' % line.decode('
gbk'
)print s
C 讀寫中文檔案
using system.text 輕鬆解決c 讀寫檔案遇到的中文亂碼問題 c 寫入 讀出文字檔案 string filename c 111.txt streamreader sr new streamreader filename 改為streamreader sr new streamread...
Python3 中文檔案讀寫
字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼 decode 成unicode,再從unicode編碼 encode 成另一種編碼。在新版本的python3中,取消了unicode型別,代替它的是使用unicod...
Java 讀寫 中文文件
public void testrw throws exception file f new file e if f.exists outputstreamwriter write new outputstreamwriter new fileoutputstream f utf 8 buffere...