首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python2.7.4如何指定格式编码的文本?比如(ANSI,UTF-8,UTF-8无BOM)

2013-08-04 
python2.7.4怎么指定格式编码的文本?比如(ANSI,UTF-8,UTF-8无BOM)求助:python2.7.4环境用#coding:utf-8f

python2.7.4怎么指定格式编码的文本?比如(ANSI,UTF-8,UTF-8无BOM)
求助:
python2.7.4环境用


#coding:utf-8
f = open('file.txt', 'w')
f.write('写入中文')
f.close()


这样生成的文本是一个Ansi编码的.
如何让python打开文件写入后,是一个UTF-8编码的文件呢?
[解决办法]
你的两段代码里,要写入的数据本身就是byte串(u'中文'是中文字符串,'中文'是byte串),用二进制方式打开就可以写了。


#coding:utf-8
f = open('file.txt', 'wb') #以二进制方式打开文件
f.write('写入中文') # 
f.close()


如果数据是unicode,先编码再写入:


#coding:utf-8
f = open('file.txt', 'wb') 
f.write(u'写入中文'.encode('utf-8') # 编码为byte string
f.close()


用codecs模块的话,通常的情况是你要写入的数据就是unicode string,不需要再decode了。

#coding:utf-8
import os
import sys

import codecs    #这个模块可以实现。
s = u'中文;113456789876543234567'       # s是unicode string
f = codecs.open('ufile.log', 'w', 'utf-8')
f.write(s)  #直接写入,codecs负责编码
f.close()

热点排行