Chinaunix

标题: 向各位请教,python程序中文写入MySQL数据库时的问题 [打印本页]

作者: thinkc    时间: 2007-01-03 17:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: thinkc    时间: 2007-01-04 10:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: goophy    时间: 2007-01-04 10:31
Mysql字符集为Ladin_1,数据库整个备份到另外一台机子上,查询数据出现以下提示
'ascii' codec can't decode byte 0xb8 in position 270: ordinal not in range(12

解决方法:
修改python的default encoding
在python\lib\site.py 文件中 encoding = "ascii" 替换成 encoding = "latin1"
作者: thinkc    时间: 2007-01-04 11:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: thinkc    时间: 2007-01-04 11:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: thinkc    时间: 2007-01-04 14:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: ttvast    时间: 2007-01-04 16:04
晕倒,set names 'gbk' 用过没有?
我的python mysql就从来不出这种错误啊
作者: thinkc    时间: 2007-01-04 16:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: limodou    时间: 2007-01-04 16:21
是不是应该把'set names "gbk"'写成一个字符串来运行啊。
作者: thinkc    时间: 2007-01-04 16:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: limodou    时间: 2007-01-04 17:30
这是我在django中找的一段代码:

        if self.connection.get_server_info() >= '4.1':
            cursor.execute("SET NAMES 'utf8'")
作者: ttvast    时间: 2007-01-05 11:59
sorry, set names 'gbk'我用在php里面了

CREATE TABLE `test` (
  `k` varchar(100) NOT NULL default '',
  `v` varchar(100) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=gbk;

import MySQLdb
db=MySQLdb.connect("localhost","root","","test")
cursor=db.cursor()
qr="INSERT INTO `test` ( `k` , `v` ) VALUES ('中国', '上海');"
cursor.execute(qr)

一切正常。
python2.3 2.4全部通过测试。
操作系统CentOS4.4
mysql-server-4.1.20-1.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
python2.3配合MySQL-python-1.0.0-1.RHEL4.1
python2.4配合MySQL-python-1.0.1
MySQL-python全部和mysqlclient10-3.23.58-4.RHEL4.1中的库连接,而不是4.1的库

我也不知道你的问题出在哪里,我用到现在一直好好的阿。
作者: thinkc    时间: 2007-01-06 12:33
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2