python2將一個字符串寫入文件中:
1、如果字符串是str類型
# -*- coding:utf-8 -*- txtFile="今天天氣不錯" f = open("1.txt", "wb") f.write(txtFile) f.close()
2、如果字符串是unicode類型
# -*- coding:utf-8 -*- txtFile=u"今天天氣不錯" txtFile=txtFile.encode('utf-8') #unicode字符串轉換成utf8 f = open("1.txt", "wb") f.write(txtFile) f.close()
#如果不轉換,會出現UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)
NOTE:
python2 默認編碼是ASCII碼,使用 # -*- coding:utf-8 -*- 將文件編碼為utf-8,即str類型。
Python3中默認是unicode
a = u'今天天氣不錯' a 是unicode類型
b = a.encode('utf-8') b 是str類型 Unicode --> encode編碼 --> GBK/UTF-8
a = b.decode('utf-8') a 是unicode類型 UTF-8 --> decode 解碼 --> Unicode
使用type查看編碼形式,unicode是‘unicode’, gbk和utf-8是‘str或bytes’。