我正在尝试将字符串从客户端 JavaScript 发送到后端 PHP 脚本。该字符串包含特殊引号,例如 '
和 “
。
当我查看 Chrome 中的控制台时,我可以看到这些内容按原样在 POST header 中发送。在 PHP 方面,我立即 json_encode()
$_POST
数组并将其发回以查看其收集的内容。特殊字符现在看起来像这样 \u2019
。 这是为了测试,请注意我通常会清理所有发布数据。
我希望使用 UTF-8,但我不确定我缺少什么。我的 HTML 包括:
<meta charset="utf-8">
我的 PHP 服务器将 UTF-8 设置为其默认字符集。
如果我开始将这些数据保存到数据库中,我就会开始得到这样的字符串:[*
for ’
。然而,这不是数据库问题,字符在进入数据库之前就已经坏了。 MySQL 纯粹是为了强调它们。
有什么想法吗?
更新
我注意到,如果我在不使用 json_encode()
的情况下将字符串返回给 javascript,那么它会采用原始格式,并带有特殊引号 ('
和 “
)仍然如此。
最佳答案
你尝试过吗:
utf8_decode()
在服务器端传递变量? PHP 可能需要 iso-8859-1 而不是 uft-8。
关于php - JavaScript 到 PHP - POST 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298634/