在我开始询问我已经看到的任何东西(Working with unicode encoded Strings from Active Directory via python-ldap)之前。Python使用unicode编码的字符串
基本上我有一个Web表单,用户可以提交数据。 作为一个例子
我可以提交“(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 =真,字符集= “utf-8”)
和我读的查询(在页面上呈现数据) DB = mysql.connect(DBHOST, dbuser,dbpass,dbname)
现在如果我在读取查询中设置字符集,我的脚本将会中断,如果没有设置,那么我会看到这个“(nichtverf gbar)”。正如我所提到submmiting数据工作正常但是显示的数据(从数据库中读取)似乎并不奏效,它看起来是不是在做正确的编码
- 的Python 2.7.3
- 进口操作系统,CGI ,MySQLdb as mysql
- Content-type: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)
顺便说一句:我不会说德语。我希望我已经解释得足够了。