全国统一服务热线:400-633-9193

js input输入百分号保存数据库失败的解决方法

    网络     2018-08-07    1367

解决办法如下:

1.用ASCII码替换百分号和与符号

1
2
3
4
var remark = $("#remark").val();
 remark.replaceAll("ASCII69","%").replaceAll("ASCII70","&");
//展示时需要对原先替换的进行还原展示
remark.replaceAll("%","ASCII69").replaceAll("&","ASCII70");

2.在jquery中用编码转换来实现百分号的保存

1
2
3
4
5
//encodeURI() 函数可把字符串作为 URI 进行编码。
//对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI()
//函数是不会进行转义的: , / ? : @ & = + $
var uri="my test.php?name=%fff&car=saab#&";
document.write(encodeURI(uri)+ "<br>");

结果为:

my%20test.php?name=%25fff&car=saab#&

这里将百分号编码为 %25

1
2
3
//decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。
//提示: 使用 encodeURI() 函数可以对 URI 进行编码。
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。

 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

1
2
3
4
5
6
7
8
var uri="http://w3cschool.cn/my test.php?name=ståle&car=saab";
document.write(encodeURIComponent(uri));
//结果展示:
http%3A%2F%2Fw3cschool.cn%2Fmy
%20test.php%3Fname%3Dst%C3%A5le%26car%3Dsaab
//decodeURIComponent() 函数可对 encodeURIComponent()
// 函数编码的 URI 进行解码。
//提示:使用 encodeURIComponent() 方法可以对 URI 进行编码。


  分享到:  
0.2561s