Py学习  »  DATABASE

php/mysql中的编码问题

Chris B. • 6 年前 • 752 次点击  

编辑:在收到我原来的帖子的反馈后,我修改了文本来澄清我的问题。

我有以下查询(伪代码):

$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_query("SET NAMES 'utf8'; COLLATE='utf8_danish_ci';");

mysql_query("SELECT id FROM myTable WHERE name = 'Fióre`s måløye'", $conn);

这将返回0行。

在我的日志文件中,我看到了:

255 Connect     root@localhost on 
255 Query       SET NAMES 'utf8'; COLLATE='utf8_danish_ci'
255 Init DB     norwegianfashion
255 Query       SELECT id FROM myTable WHERE name = 'Fióre`s måløye'
255 Quit
  • 如果我直接在phpmyadmin中运行查询,就会得到结果。
  • 表编码:UTF-8
  • HTML页面编码:UTF-8
  • 我可以添加(从表单输入)名称使用重音符号的记录(例如“fi_3;re's h_ elberg”)。
  • 使用->“name like'$labelname%”,可以读取带有重音的记录。
  • 数据库中的信息看起来不错

我不知道为什么我不能选择任何名字带有重音字符的行。

我真的希望有人能帮助我。

更新1: 我已达成妥协。我将在存储数据时使用htmlentities转换重音符号,在从数据库检索数据时使用html_entity_解码。这似乎奏效了。

到目前为止,我看到的唯一缺点是,我无法使用phpmysql读取明文中的名称。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30742
 
752 次点击  
文章 [ 6 ]  |  最新文章 6 年前