Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8607949
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: Python/Ruby

2010-01-20 14:40:54

这几天出现了一个怪现象,写了一个用python访问mysql的数据库程序。在我的arch下面运行一段程序没有字符乱码问题,但是在ubuntu下面运行的时候,出现的繁体中文乱码,最后,终于找到了解决方法。
首先,发现ubuntu没有中文语言包,所以就先将中文语言包(包括简体和繁体)都安装上,可是运行程序还是乱码,后来在想,是不是我在写文件的时候,有乱码,可是再往前推,发现读数据库的时候,明明数据库里面数据是正常繁体中文显示,但是在终端里面却仍是乱码,最后,在MySQLdb.connect的时候,多加了一个参数, charset="utf8",好了,读出来的结果是正确的。我想原因就在于这个点上了。
另外,因为要将结果写在一个文件中,发现提示错误说是:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 242-244: ordinal not in range(128)
而这一行就是简单的将文件写入的语句,格式为fn.write("%s\n",var),按照提示,应该是这个var变量太长了,超过128个字符,最后用这样的形式就可以了:
fp_csv.write(new_row.encode('utf-8') + "\n")
好了,这个问题伤脑盘的问题终于可以告以段落了。

阅读(2292) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~