在我开始询问我已经看过的任何事情之前(Working with unicode encoded Strings from Active Directory via python-ldap)。
基本上我有一个用户可以提交数据的网络表单。 作为一个例子
我可以提交“(nichtverfügbar)”很好,当我转到数据库时,我可以看到“(nichtverfügbar)”,
mysql> select * from tr_values where idvalues = 8905 \G
*************************** 1. row ***************************
idvalues: 8905
valuename: (nicht verfügbar)
idkeys: 584
idvers: 1
idlangs: 5
1 row in set (0.00 sec)
然而,当我刷新页面时,我看到了
对于我的更新查询,我正在使用它。 db = mysql.connect(dbhost,dbuser,dbpass,dbname,use_unicode = True,charset =“utf8”)
和我的阅读查询(在页面上呈现数据) db = mysql.connect(dbhost,dbuser,dbpass,dbname)
现在,如果我在读取查询上设置字符集,我的脚本将会中断,如果没有设置,那么我将看到这个“(nichtverf gbar)”。正如我提到的,submmiting数据工作正常然而显示数据(从db读取)似乎没有工作,看起来它没有正确地进行编码
mysql> show create table tr_values \G
*************************** 1. row ***************************
Table: tr_values
Create Table: CREATE TABLE `tr_values` (
`idvalues` int(11) NOT NULL AUTO_INCREMENT,
`valuename` text,
`idkeys` varchar(45) DEFAULT NULL,
`idvers` varchar(45) DEFAULT NULL,
`idlangs` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idvalues`)
) ENGINE=InnoDB AUTO_INCREMENT=9986 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
答案 0 :(得分:0)
好的,我可以通过执行以下操作来修复它
在我的读取连接器上添加“use_unicode = True,charset =”utf8“
然后我在哪里生成我的数据添加.encode('utf-8')
valuename = row [3] .encode('utf-8')
希望这有助于一些人。