我有一个通过网络服务获取的单词:André
在Python中,该值类似于:“Andr\u00c3\u00a9”。然后使用json.loads
对输入进行解码:
>>> import json
>>> json.loads('{"name":"Andr\\u00c3\\u00a9"}')
>>> {u'name': u'Andr\xc3\xa9'}
当我将上述内容存储在utf8 MySQL数据库中时,使用Django将数据存储如下:
^{pr2}$从mysql shell查询name列或将其显示在网页中可以得到:
André
网页以utf8显示:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我的数据库配置为utf8:
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
如何从web服务中检索André这个词,将其正确地存储在数据库中而不丢失数据,并以其原始形式显示在web页面上?在
错误已经在传递到的字符串中json.loads(). \u00c3是“A tilde”,而\00a9是版权标志。正确的é应该是\u00e9。在
很可能这个字符串被发送方用UTF-8编码,而接收方将其解码为ISO-8859-1。在
例如,如果运行以下Python脚本:
输出应如下所示:
^{pr2}$在Python2.x中管理unicode有时会变得很麻烦。不幸的是,Django还不支持python3。在
相关问题 更多 >
编程相关推荐