背景:我系统的一部分使用 utf8_encode 将 html 代码转换为 utf8 格式,然后再将其传递给 json_encode。
问题:一切都很好,直到我将 UTF8 字符(中文)输入系统。我注意到提到的 UTF8 字符被编码两次并且出现乱码。
旁注:直到现在我还没有字符集编码的经验。也许我不需要在 json_encode 之前使用 utf8_encode,因为我的数据库和连接已经设置为 utf8。如果 html 代码中没有中文字符,mb_detect_encoding 将返回 ASCII(不是 ISO-8859-1)。但是我无法通过 json_encode 而不返回 null ...因此使用 utf_8 编码一直有效。
更新:我终于通过将 html 代码类型转换为字符串解决了这个问题;通过(字符串)$ html;在将其分配给 json_encode() 之前。
感谢所有在这里发帖的人,他们让我找到了最终的解决方案。