gpt4 book ai didi

PHP rawurlencode 不等于 JavaScripts 转义!为什么?

转载 作者:可可西里 更新时间:2023-11-01 00:37:05 27 4
gpt4 key购买 nike

我意识到,当我在 PHP 中使用 urlencode 或 rawurlencode 编码简单字符 §(段落)时,我得到以下结果:“%C2%A7”。

但是当我在 Javascript 中使用转义符对该字符进行编码时,我只得到“%A7”。

在这种情况下,在运行 PHP 的服务器和试图通过 ajax/jquery 获取数据的 javascript 客户端之间发送/接收数据时,我遇到了编码问题。

我希望能够写出我想要的任何类型的文本。为此,我对文本进行编码并将其发送到后端 php 脚本,转义数据并发送。当我检索它时,在 php 端我从 mysql 获取数据并执行 rawurlencode 并将其发回。

双方,工作在UTF-8模式。使用 "contentType: application/x-www-form-urlencoded:charset=UTF-8" 调用 jquery ajax 函数,mysql 服务器为客户端和服务器设置为 UTF-8,而 php脚本开始回显 header( "application/x-www-form-urlencoded:charset=UTF-8");

为什么 PHP 会生成 %C2 东西,它会在 javascript 端生成字符 Â。

有人帮忙吗?

最佳答案

我前段时间遇到了同样的问题并找到了解决方案:

function rawurlencode (str) {
str = (str+'').toString();
return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
replace(/\)/g, '%29').replace(/\*/g, '%2A');
}

代码取自这里 - http://phpjs.org/functions/rawurlencode:501希望对您有所帮助。

关于PHP rawurlencode 不等于 JavaScripts 转义!为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4887679/

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