【发布时间】:2014-12-05 20:41:14
【问题描述】:
在我开始询问我已经看到的任何内容之前 (Working with unicode encoded Strings from Active Directory via python-ldap)。
基本上我有一个网络表单,用户可以在其中提交数据。 举个例子
我可以很好地提交“(nicht verfügbar)”,当我转到数据库时,我可以看到“(nicht verfü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)
现在,如果我在读取查询上设置字符集,我的脚本将中断,如果未设置,那么我将看到这个“(nicht verf�gbar)”。正如我提到的,提交数据工作正常,但是显示数据(从 db 读取)似乎没有工作,并且看起来它没有正确进行编码
- Python 2.7.3
- 导入 os,cgi,MySQLdb 为 mysql
- 内容类型:text/html;charset=UTF-8\r\n
- meta http-equiv="content-type" content="text/html;charset=UTF-8">
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)
顺便说一句:我不会说德语。我希望我已经解释得够多了。
【问题讨论】: