php文件字符编码、mysql数据库字符编码、特殊字符
Posted
技术标签:
【中文标题】php文件字符编码、mysql数据库字符编码、特殊字符【英文标题】:php file character encoding, mysql database character encoding, special characters 【发布时间】: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-8ResultsPage 通过 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ù”的行)。 【参考方案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);
【讨论】:
以上是关于php文件字符编码、mysql数据库字符编码、特殊字符的主要内容,如果未能解决你的问题,请参考以下文章