JavaScript 直接使用get方式提交存在特殊字符【例如加号】的解决方法
最近开发时碰到这样的问题,在一个项目中查询字符“C++规范”时尽然查询不出结果。
当时一碰到问题还以为是代码问题,就一行行的echo【php语言】发现js提交过来的C++竟然变成呢C。上网找资料有三种解决方案
1 、改用 post 方法?
2 、在 js 对相应字段进行编码,后台再解码一次
3 、将参数里的加号进行转换
????? data = data.replace(/\+/g, "%2B");
?? //data = data.replace(/\&/g, "%26") ;
页面编码流程如下gb2312->gb2312
我采用的为第二种方法。
先将URL中可能存在值进行编码为uft8而不使用整个URL编码,编码函数为encodeURIComponent()
例如xxx.php?name=encodeURIComponent( xxx );
后台解码将utf8转换为gbk