gpt4 book ai didi

PHP 突然出现以前不存在的 UTF8 编码问题。应用程序未更改

转载 作者:行者123 更新时间:2023-11-29 11:20:47 25 4
gpt4 key购买 nike

我运行的个人网站始终正确显示重音字符。现在,突然间,它不再是了。有趣的是,即使它的本地主机版本也没有。

该应用程序在这方面多年来没有改变,这就是它的作用,按给定的顺序:

  1. mysql 数据库设置为排序规则 utf8_general_ci

  2. 应用程序发送这两个查询:“设置名称'utf8'整理'utf8'”和“SET CHARACTER_SET 'utf8'”

  3. Php header 在打印任何内容之前发送以下 header :header('内容类型:text/xml; charset=utf-8'."\r\n");header('内容传输编码:utf-8'."\r\n");

  4. 每个网页都会显示一个元标记,如下所示:<meta http-equiv="content-type"content="text/html; charset=utf-8"/>

然而,现在突然间,字符显示全部错误。如果我手动替换字符,它们会按预期显示。但我无法理解当时是否或什么可能“损坏”了数据库。当然,我无法手动修复数百个帖子。

知道为什么会突然发生这种奇怪的事情以及如何解决它的建议吗?

错误行的实例:“Non ho mai avuto l'opportunità di incontrarti di persona。Non so se à perchè non ho cercato abbastanza l'oceane o perchè”等...

最佳答案

èè 的 Mojibake。你在期待坟墓吗?不管什么改变或没有改变,让我们看看修复它。

参见this并寻找 Mojibake。它说要检查/修复这些:

  • 要存储的字节需要采用 UTF-8 编码。解决这个问题。
  • INSERTing和SELECTing文本时的连接需要指定utf8或utf8mb4。解决这个问题。
  • 该列需要声明为字符集 utf8(或 utf8mb4)。解决这个问题。
  • HTML 应以 . 开头

另请参阅检查 è 存储内容的十六进制的技术:

  • utf8 十六进制为 C3A8
  • 十六进制C383C2A8表示您有“双重编码”;这会导致其他问题。
  • E8 是 latin1 十六进制 - 我怀疑您是否会看到这一点。

关于PHP 突然出现以前不存在的 UTF8 编码问题。应用程序未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38958576/

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