gpt4 book ai didi

php - MySQL、PHP 和 HTML 字符集问题

转载 作者:行者123 更新时间:2023-11-30 22:09:01 24 4
gpt4 key购买 nike

  • 所以我有一堆 MySQL 表,它们的 varchar 字段是 utf8_general_ci
  • php 的默认字符集是 utf8
  • 最后,我在我的 html header 中将字符集设置为 utf8 <meta charset="UTF-8">

这个数据库中的文本是用从英文到中文的几种不同语言编写的。

很多 'e' 都带有重音符号,并且使用时髦的引号。

没有绒毛,这些特殊字符都作为黑色菱形中的问号输出到屏幕(2 除外)。

通过简单地将变量包装在 utf8_encode($string) 中一切都很好......除了那两个。

第一个问题:为什么我需要使用utf8_encode如果一切都已经设置好了?

第二个问题:几个条目使用♀和♂(它们就这样存储在数据库中)。这些显示为简单的问号(没有黑色菱形)。不管我对他们做什么,他们都不会改变。我已经尝试了 utf8_encode 的所有可能组合, utf8_decode , htmlspecialchars , 和 htmlspecialchars_decode .没有什么。唯一的解决方案是更改数据库条目以使用 &#9792例如 for ♀,那么没有任何绒毛就输出正确。为什么?

最佳答案

对于中文和表情符号,您需要 utf8mb4 而不是 utf8。

对于黑色钻石,请在 this Q&A 中搜索此类钻石.它说

  • SELECT 的连接(或 SET NAMES)不是 utf8mb4。解决这个问题。
  • 此外,检查数据库中的列是否为 CHARACTER SET utf8mb4。

因为你好像用的是PHP,但是没说你用的是mysqli还是PDO,我给你转PHP checklist .

如果您有 ,那么您在某个地方将符号转换为“html 实体”,也许是使用 PHP 的 htmlentities()?不要在客户端使用任何转换工具,这只会让事情变得更糟。

关于php - MySQL、PHP 和 HTML 字符集问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40751834/

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