php文件字符编码,mysql数据库字符编码,特殊字符


php file character encoding, mysql database character encoding, special characters

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

  • 在我的第一个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
  • 标头('Content-type:text.html;charset=utf-8')

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


现在,例如:

  • 如果我以RequestPage的形式输入单词"Cantu",resultsPage将执行查询,并向我显示DB中每个带有单词"Cantú"的条目,对我来说它是OK的
  • 如果我以RequestPage的形式输入单词"Cantú",resultsPage将执行查询并不显示任何行,但我想查看带有单词"Cantú"的行

有什么建议吗?

我已经解决了在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);