我正在尝试从客户端JavaScript向后端PHP脚本发送字符串。该字符串包含’
和“
等特殊引号。
当我在Chrome中查看控制台时,我可以看到这些是在POST标头中发送的。在PHP方面,我立即json_encode()
$_POST
数组并将其发回以查看其收集的内容。特殊字符现在看起来像\u2019
。 这是用于测试请注意我通常会清理所有发布数据。
我希望使用UTF-8,但我不确定我缺少什么。我的HTML包括:
<meta charset="utf-8">
我的PHP服务器将UTF-8设置为其默认字符集。
如果我开始将这些数据保存到数据库,我开始使用这样的字符串:âÂÂ
’
。但是这不是数据库问题在进入数据库之前,字符已经坏了。 MySQL纯粹强调了它们。
有什么想法吗?
更新
我注意到如果我在不使用json_encode()
的情况下将字符串返回给javascript,那么它的原始格式仍然是特殊引号(’
和“
)。
答案 0 :(得分:0)
你试过了吗?
utf8_decode()
在服务器端,您传递的变量是什么? PHP很可能期望 iso-8859-1 而不是 uft-8 。
答案 1 :(得分:0)
事实证明,池塘两侧都存在问题。这个问题涉及的PHP问题是数据是通过GET请求(url编码)发送到后端的。我已将此更改为POST请求。
这允许我在发送POST请求的标头时指定UTF-8字符集。