+ -
当前位置:首页 → 问答吧 → python处理中文的问题

python处理中文的问题

时间:2011-02-28

来源:互联网

python连接数据库之后查询出的字段有中文的 

可以print,但是当往文件里写得时候就写不进去了

数据库是utf-8的

网上找了不少的资料,但没找到解决办法

求救···

作者: voiceofwind   发布时间: 2011-02-28

连的什么数据库,代码,报错日志。。。
给点详细的信息啊。


另:
  使用中文做字段名是非常不好的习惯

作者: runer   发布时间: 2011-02-28

贴完整的错误信息,如果可能,把代码也贴出来。
不贴错误信息的,说明你自己都没仔细研究过。

作者: iambic   发布时间: 2011-02-28

哦,没说清楚,字段是英文的,但是具体结果是中文的
Python code

con = MySQLdb.connect(host='xxxxx',port=3306,user='root',passwd='pwd',db='db', charset='utf8')
cursor = con.cursor()

####商品,id,name,cateid1,cateid2,catename1,catename2
goods_sql = "select ..."
cursor.execute(goods_sql)
result = cursor.fetchall()
p = open('c:/goods.txt','w')
p.write(s)

for i in result :
    print i[0],i[1],i[2],i[3],i[4],i[5]

    p.write(str(i[0]))
    p.write('<|>')
    p.write(str(i[1]))
    p.write('<|>')
    p.write(str(i[2]))
    p.write('<|>')
    p.write(str(i[3]))
    p.write('<|>')
    p.write(str(i[4]))
    p.write('<|>')
    p.write(str(i[5]))
    p.write('\n')
        
p.close()



错误代码Python code

p.write(str(i[4]))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

作者: voiceofwind   发布时间: 2011-02-28