解决python读mysql中文繁体乱码问题
时间:2010-01-20 来源:riverbird2005
这几天出现了一个怪现象,写了一个用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")
好了,这个问题伤脑盘的问题终于可以告以段落了。
相关阅读 更多 +