2014-10-10 98 views
0

在我开始询问我已经看到的任何东西(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数据工作正常但是显示的数据(从数据库中读取)似乎并不奏效,它看起来是不是在做正确的编码

  1. 的Python 2.7.3
  2. 进口操作系统,CGI ,MySQLdb as mysql
  3. Content-type:text/html; charset = UTF-8 \ r \ n
  4. 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)

顺便说一句:我不会说德语。我希望我已经解释得足够了。

回答

0

好吧,我能够通过执行以下操作

在我读连接器添加到解决它“use_unicode =真,字符集=” utf-8"

,然后我在哪里产生我的数据添加.encode( 'UTF-8')

VALUENAME =行[3] .encode( 'UTF-8')

希望这有助于一些一个别人的。

相关问题