gpt4 book ai didi

character-encoding - 为什么在 HTML 表单中提交时引号会变成有趣的字符?

转载 作者:行者123 更新时间:2023-12-03 13:45:13 24 4
gpt4 key购买 nike

我有一个 HTML 表单,一些用户正在从 MS Word 复制/粘贴文本。当有单引号或双引号时,它们会被翻译成有趣的字符,例如:

'€™ 和 ’

数据库列是排序规则 utf8_general_ci。

如何让合适的角色出现?

编辑:
问题解决了。这是我修复它的方法:

mysql_query("SET NAMES 'utf8'");在从数据库中添加/检索之前。 (感谢下面多纳尔的评论)。

有点奇怪,php 函数 urlencode($text)显示时已应用,因此必须将其删除。

我还确保页面的标题和 ajax 请求/响应都是 utf8。

最佳答案

这看起来像是 unicode(最有可能是 UTF-8)字符被解释为 iso-8859-1 的经典案例。沿途有几个地方角色可能会被破坏。首先,客户端的浏览器必须发送数据。如果它不能正确地将字符转换为页面的字符编码,它可能会损坏数据。然后服务器读取数据并将字节解码为字符。如果客户端和服务器不同意所使用的编码,则字符将被破坏。然后将数据存入数据库;再次存在腐败的可能性。最后,当数据写入页面(显示给浏览器)时,如果页面没有充分表明它的编码,浏览器可能会误解字节。

您需要确保始终使用 UTF-8。网页的默认值为 iso-8859-1,因此您的网页应使用 Content-Type header 或元标记

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

(确保您确实以该编码提供文本)。

通过在过程的所有部分使用 UTF-8,您将避免所有工作的 Web 浏览器和数据库出现问题。

关于character-encoding - 为什么在 HTML 表单中提交时引号会变成有趣的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487369/

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