url传参含加号及乱码问题

今天做文本框特殊符号处理,碰到url传递参数是“+”传上去变为空格的问题,网上搜索了关天,只找到一个可使用的,所以把它粘上来,希望可以帮助到需要的人。
strURL = "search.do?param=" + encodeURIComponent(str);


普通的传参出现乱码问题,可使用encodeURI来转译,它会转译成UTF-8的格式;
strURL = "search.do?param=" + encodeURI(str);
### BP URL解码时中文乱码解决方案 当处理URL中的中文字符时,可能会遇到乱码问题。这通常是因为编码和解码过程中使用的字符集不匹配造成的。为了确保正确显示中文字符,在PHP中使用`urldecode()`或`rawurldecode()`函数之后,可能还需要进一步调整字符编码。 对于通过BP(假设为某种基于Web的应用程序接口)接收到并经过URL编码的字符串,如果其中有非UTF-8编码的中文字符,则应先将其按照原始编码方式进行解码,再转成目标页面所期望的字符集。例如: ```php // 假设输入是一个GB2312编码下的URL编码串 $input = '你好'; // 实际上应该是已编码的形式,这里简化表示 $decoded = urldecode($input); // 或者 rawurldecode(), 视具体情况而定 // 将其转换为目标编码,比如 UTF-8 $output = mb_convert_encoding($decoded, "UTF-8", "GBK"); echo $output; ``` 上述代码片段展示了如何将一个可能是GB2312或其他本地化编码方案编写的URL参数值转化为现代网页常用的UTF-8格式[^1]。 另外值得注意的是,某些情况下服务器端脚本默认设置也可能影响到最终呈现效果。因此建议检查HTTP头信息以及HTML文档声明部分是否指定了正确的字符集。 最后提醒一点,尽管`urldecode()`能够识别加号(`+`)作为空格来解析,但在实际应用开发实践中更推荐统一采用百分比形式(%20)来进行空白符编码,这样可以减少因不同浏览器解释差异带来的潜在麻烦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值