gpt4 book ai didi

php - 用JS和PHP转义 "+"

转载 作者:行者123 更新时间:2023-12-04 05:51:10 25 4
gpt4 key购买 nike

我做了一个应用,

你写一些文本,文本将通过 ajax 保存。在发送请求之前,我用js对其进行了转义。但是不知何故,“+”字符将被转换为“”空格字符......

所以我在发送“%plus%”之前尝试查找和替换,但我收到了这些错误消息:

未捕获的语法错误:无效的正则表达式:/+/:无需重复

代码:

var replace = "%plus%";
while(title.search(sign) != -1) {
title.replace("+", replace);
}

也许有人知道一个更好的解决方案...我使用 utf-8...和像“ä”这样的德语字符 我在通过 Ajax 从 DB 获取它时也遇到“€”问题...和很多其他 Angular 色....

如果我在 php 中使用 rawescape() 并在 js 中使用 unescape(),我会得到很好的结果(但 € -> %u20AC 仍然有问题

需要帮助:)

最佳答案

So i tryed to find and replace before sending in "%plus%"

这还不够。如果您未能对 + 符号进行 URL 编码,您几乎肯定会忘记对任何内容进行 URL 编码,并且如果不进行 URL 编码,还有许多其他字符会导致失败,而不仅仅是加号签名。

在创建对参数内的特殊字符进行编码的请求时,您需要使用 encodeURIComponent():

var url= 'something?param='+encodeURIComponent(param)+'&other='+encodeURIComponent(other);

否则,任何不适合 URL 的字符都会导致损坏,包括 +(如果包含在查询参数中,则表示空格;对于真正的加号,您需要 %2B) 和许多其他标点符号,以及所有非 ASCII 字符(例如 应该是 %E2%82%AC,使用UTF-8 编码)。

在任何情况下都不要使用 JavaScript escape()unescape() 函数。这些不是 URL 编码,而是一个JavaScript 特有的非标准编码,看起来类似于 URL 编码但不兼容。特别是所有非 ASCII 字符都会被破坏,这就是 不起作用的原因。

关于php - 用JS和PHP转义 "+",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238045/

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