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

新人python 读写 csv 和数据库的编码有关问题

2013-01-18 
新人求助:python 读写 csv 和数据库的编码问题学习python一周了,现在被编码这个搞晕了, 我在python写了下

新人求助:python 读写 csv 和数据库的编码问题
学习python一周了,现在被编码这个搞晕了, 我在python写了下面这些话:
 #coding:utf-8
 import csv
 csvfile=file('d:/t2.csv','w')
 writer=csv.writer(csvfile)
 writer.writerow(['姓名','性别','电话'])
 data=[('可乐,'26','12536454'),('天意','18','12345556')]
 writer.writerows(data)
 csvfile.close()

问题1, 这个#coding:utf-8 ,指的是 什么 被设置成了 utf-8 ?? 
问题2, 我查了一下, csv 默认编码为 acsii,  那么我用writer写的时候,并没有把 utf-8改成 acsii啊, 但是写入成功了,而且也没有任何错误啊
问题3, 我连接 postgresql 数据库时, 数据库默认是 utf-8 编码的, 是不是 如果想把['姓名','性别','电话'] 这三个字段写入数据库,就得把这个语句转换成 utf-8?? 那么 我怎么知道 我在python里敲入的“['姓名','性别','电话'] ” 这句话 是用什么编码的啊???
[解决办法]
不知道你的py版本,下面说的是py3.3
1.#coding:utf-8 是指py文件本身的编码声明,主要给unix系统识别的,实事求是,如果是gbk就写gbk而不要写utf-8
2.csv的编码根据你打开文件的encoding=xxx参数决定,没有这个参数一般跟随本地系统pagecode
3.查看你的py文件自身编码,不是utf-8就需要转换

综合上面,你应该自己先弄清楚你的字串来源编码是什么
[解决办法]
我也是刚刚学,不太懂, 不过你试着打印
for i in reader:
    print i[0],i[1],i[2]…… ,
如果乱码,试着把i[0]转换一下编码!
[解决办法]
貌似python内部编码应该是unicode,当输出到utf-8的数据库时,unicode字符串需要编码成utf-8字符串

热点排行