在一个非常繁忙的PHP脚本中,我们在开头调用“Set names utf8”,它设置了mysql应该解释的字符集,并将数据从服务器发送回客户端。
http://dev.mysql.com/doc/refman/5.0/en/charset-applications.html
我想摆脱它,所以我在我们的服务器ini文件中设置default-character-set = utf8。 (见上面的链接)
由于相关的服务器参数是:设置似乎正在起作用: 'character_set_client','utf8' 'character_set_connection','utf8' 'character_set_database','latin1' 'character_set_filesystem','二进制' 'character_set_results','utf8' 'character_set_server','latin1' 'character_set_system','utf8' 但是在这个改变和评论出来后,设置名称utf8仍然是数据开始出现乱码。
请指教....
答案 0 :(得分:1)
设置PHP和MySQL之间连接的编码是PHP的工作;我不认为MySQL设置会影响它。
我真的建议在应用程序中保留一些代码,将连接字符集设置为UTF-8。应用程序需要确保编码是UTF-8,因为它可能会告诉Web浏览器它的页面是UTF-8,如果这些页面不匹配则会出现问题。
由于它已经是应用程序负责决定字符集的一部分,因此您可以使应用程序成为指定数据库连接字符集的应用程序,而不是将其作为部署问题,并在安装时出错。新服务器上的应用程序。
但我会亲自使用mysql_set_charset来代替SET NAMES
。
类似地,如果应用程序中包含用于创建模式的代码,请确保代码告诉MySQL使表格为UTF-8,而不是将其保留到数据库的默认设置,并给自己另一个部署问题担心
答案 1 :(得分:0)
跳过字符集的客户端握手
但我不认为Set names查询太多了。你无处不在。并限制您的数据库功能