【发布时间】:2010-02-15 20:50:34
【问题描述】:
我在将 utf-8 字符串传递给 javascript (ajax) 时遇到问题。目前我在 PHP 端使用rawurlencode,在 javascript 端使用unescape。
问题在于拉丁语,rawurlencode 不完全支持它。
有没有其他选择或更好的选择?
【问题讨论】:
标签: php javascript utf-8
我在将 utf-8 字符串传递给 javascript (ajax) 时遇到问题。目前我在 PHP 端使用rawurlencode,在 javascript 端使用unescape。
问题在于拉丁语,rawurlencode 不完全支持它。
有没有其他选择或更好的选择?
【问题讨论】:
标签: php javascript utf-8
解决方案在json_encode 函数中。当我添加JSON_HEX_APOS|JSON_HEX_QUOT 时,问题就停止了。
谢谢!
【讨论】:
在 PHP 中使用 json_encode 并以 JSON 格式接收响应(jQuery 很有帮助) ajax 默认是 utf-8 发送的,所以你只需要返回 utf-8
php 的 utf8_encode(data) 获取 ISO-8859-1 字符串作为数据参数。
需要更多建议吗?告诉我你从哪里得到的文本;)
【讨论】:
根据经验,Javascript 的 escape()(蚂蚁因此为 unescape())不 Unicode (UTF-8) 友好。请改用encodeURIComponent() 和decodeURIComponent()。
无论如何,正如文档所说:
escape() 函数不应该是 用于对 URI 进行编码。
【讨论】:
如果 php 进行编码和 js 解码,为什么不简单地不在 php 中编码并在 js 中编码?与其说是一个真正的答案,不如说是一种解决方法。
【讨论】: