【问题标题】:php file character encoding, mysql database character encoding, special charactersphp文件字​​符编码、mysql数据库字符编码、特殊字符
【发布时间】:2014-12-21 20:37:26
【问题描述】:

我有一个带有一些特殊字符、一个输入表单、一些 php 页面的 mysql 数据库。

  • 在我的第一个 php 页面 (requestPage) 中,我有输入表单。

  • 此页面(通过 GET)向另一个 php 页面 (ResultsPage) 发送参数。

  • 最后这个php页面(ResultsPage)向dbms发送一个带有参数的查询并显示结果。


RequestPage 通过 utf-8 编码

  • meta http-equiv="Content-Type" content="text/html; charset=utf-8

ResultsPage 通过 utf-8 编码

  • meta http-equiv="Content-Type" content="text/html; charset=utf-8
  • header('Content-type: text/html; charset=utf-8');

数据库及其表被编码为 utf8_general_ci。


现在,例如:

  • 如果我在 RequestPage 的形式中输入单词“Cantu”,resultPage 会执行查询并向我显示带有单词“Cantù”的 DB 的每个条目,对我来说没问题。
  • 如果我在 RequestPage 中输入单词“Cantù”,resultsPage 会执行查询并且不显示任何行,但我想查看带有单词“Cantù”的行!

有什么建议吗?

【问题讨论】:

  • 此外:在 ResultsPage 中,我打印了我正在尝试执行的查询,并将其放入 phpMyAdmin 并且它可以工作。使用“Cantù” phpmyadmin 向我显示正确的行(带有单词“Cantù”的行)。

标签: php mysql utf-8 character-encoding non-ascii-characters


【解决方案1】:

我已经解决了在 php resultsPage 文件中添加这个字符串的问题:

mysql_query("SET character_set_results = 'utf8', character_set_client='utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $connection);

显然它必须插入到这个字符串之后:

$connection = mysql_connect($servername,$username,$dbpassword);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2016-10-19
    • 1970-01-01
    • 2013-06-07
    相关资源
    最近更新 更多