gpt4 book ai didi

PHP 字符集重音问题

转载 作者:可可西里 更新时间:2023-11-01 07:06:37 24 4
gpt4 key购买 nike

我的页面中有一个表单供用户发表评论。

我目前正在使用这个字符集:

meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" 

但从 DB 重音检索评论显示不正确(Ex. è =>è)。

为了正确处理重音,我应该关注哪些参数?

已解决

  • 将元标记更改为 charset='utf-8'

  • 更改字符集 Mysql(ALTER TABLE comments CONVERT TO CHARACTER SET utf-8)

  • 在插入记录和检索时都更改了连接字符集($conn->query('SET NAMES utf8'))

现在重音显示正确

谢谢

卢卡

最佳答案

当涉及到 LAMP 网络应用程序时,字符集可能很复杂且难以调试。在一个软件与另一个软件对话的每个阶段,都存在不正确的字符集转换或不正确的数据存储的范围。

您需要注意的地方是: - 在浏览器和网络服务器之间(您已经列出) - 在 PHP 和 MySQL 服务器之间

您列出的字符看起来像正常的欧洲字符,将包含在 ISO-8859-1 字符集中。

要检查的事项:

  • 即使您在元 header 中指定了字符集,也请查看您的浏览器以确保浏览器实际使用的是哪个字符集。如果您指定了它,浏览器应该使用该字符集来呈现/查看页面,但在某些情况下,我看到它试图自动检测正确的字符集并失败。大多数浏览器都有一个“编码”菜单(可能在“查看”下),允许您选择字符集。确保它显示 ISO-8859-1(西欧)。
  • 如果需要,MySQL 可以愉快地支持字符集转换,但在大多数情况下,您希望表和客户端连接设置为使用相同的编码。当以这种方式配置时,MySQL 不会尝试进行任何编码转换,只会将您输入的数据逐字节写入表中。读取时,它会以相同的方式逐字节显示。

您没有说您是使用同一个网络应用程序还是使用其他客户端从数据库中读取数据。我建议您尝试使用相同的 Web 应用程序并使用相同的元字符集 header 来读取它(同样,检查浏览器是否真的设置了它)并查看浏览器中显示的内容。

要调试这些问题,您需要真正确定您使用的客户端/控制台是否也在进行任何转换,最安全的方法有时是将数据放入十六进制编辑器中,您可以确保没有其他任何东西正在搞乱任何翻译。

如果它看起来不像是浏览器端问题,请将以下命令的输出包含在您的数据库中:

从您的网络应用建立的连接运行(而不是从其他 MySQL 客户端):

SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';

从任何 MySQL 客户端运行:

SHOW CREATE TABLE myTable;

(其中 myTable 是您要从中读取/写入数据的表)

关于PHP 字符集重音问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5696378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com