我的页面中有一个表单供用户发表评论。
我目前正在使用这个字符集:
meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"
但是检索来自数据库重音的评论显示不正确(例如è=>Ã)。
我应该关注哪些参数来正确处理重音?
解决
将元标记更改为charset ='utf-8'
更改了字符集Mysql(ALTER TABLE注释CONVERT TO CHARACTER SET utf-8)
在插入记录和检索时更改了连接字符集($ conn-> query('SET NAMES utf8'))
现在重音显示正确
感谢
卢卡
答案 0 :(得分:3)
对于LAMP Web应用程序,字符集可能很复杂,也很难调试。在一个软件与另一个软件交谈的每个阶段,都存在不正确的字符集翻译或不正确的数据存储的范围。
您需要注意的地方是: - 浏览器和Web服务器之间(已经列出) - 在PHP和MySQL服务器之间
您列出的角色看起来像普通的欧洲角色,将包含在ISO-8859-1字符集中。
要检查的事项:
您没有说过,如果您使用相同的网络应用程序或其他客户端从数据库中读取数据。我建议您尝试使用相同的Web应用程序读取它并使用相同的元字符集标题(再次,检查浏览器是否真的设置它)并查看浏览器中显示的内容。
要调试这些问题,您需要确定您正在使用的客户端/控制台是否也在进行任何转换,最安全的方法是将数据放入十六进制编辑器,您可以确定没有其他内容正在搞任何翻译。
如果它看起来不像是浏览器端问题,请在数据库中包含以下命令的输出:
从您的网络应用程序所做的连接(而不是来自其他一些MySQL客户端)运行:
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
从任何MySQL客户端运行:
SHOW CREATE TABLE myTable;
(其中myTable是您正在读取/写入数据的表格)
答案 1 :(得分:1)
ISO-8859-1字符集仅适用于拉丁字符。尝试使用UTF-8,并确保这些字符来自的数据库也是UTF-8列。