【发布时间】:2011-02-03 14:54:04
【问题描述】:
我意识到当我在 PHP 中使用 urlencode 或 rawurlencode 编码简单字符 §(段落)时,我得到以下结果:“%C2%A7”。
但是当我在 Javascript 中使用转义来编码该字符时,我只得到“%A7”。
在这种情况下,我在运行 PHP 的服务器和试图通过 ajax/jquery 获取数据的 javascript 客户端之间发送/接收数据时遇到编码问题。
我希望能够写出我想要的任何类型的文本。为此,我对文本进行编码并将其发送到后端 php 脚本,转义数据并发送。当我检索它时,在 php 端,我从 mysql 获取数据并执行 rawurlencode 并将其发送回。
双方均在 UTF-8 模式下工作。 jquery ajax 函数使用"contentType: application/x-www-form-urlencoded:charset=UTF-8" 调用,mysql 服务器为客户端和服务器设置为UTF-8,php 脚本开始以header( "application/x-www-form-urlencoded:charset=UTF-8"); 回显
为什么 PHP 会生成 %C2 的东西,它会在 javascript 端生成字符 Â。
有人帮忙吗?
【问题讨论】:
-
查看PHP docs 似乎有一个名为omid had the same trouble 的用户。
标签: php javascript escaping urlencode