form表单提交后结果乱码的解决方法
程序员文章站
2022-05-29 10:17:07
1.产生乱码原因:表单提交使用的method="get",get方式数据都是通过地址栏传输,数据会以iso-8859-1方式传输,因此产生乱码 2.概念:URI: Uniform ResourceIdentifiers,通用资源标识符,有效的URI中不能包含某些字符,例如空格 3.解决编码和解码的方 ......
1.产生乱码原因:表单提交使用的method="get",get方式数据都是通过地址栏传输,数据会以iso-8859-1方式传输,因此产生乱码
2.概念:uri: uniform resourceidentifiers,通用资源标识符,有效的uri中不能包含某些字符,例如空格
3.解决编码和解码的方法:
(1)js中decodeuricomponent() 函数的定义与用法:
定义:decodeuricomponent() 函数编码的uri进行解码[encodeuricomponent() 可以对字符串编码]
语法:decodeuricomponent(uri)
(2)js中encodeuri()函数的定义与用法:
定义:encodeuri()函数可以把字符串作为uri进行编码,在uri中具有特殊含义的ascii标点符号,encodeuri()函数是不会进行转义的【decodeuri()可以解码uri】
语法:encodeuri(uri)
4.方法小结一下:
相同点:
(1)encodeuri(),和encodeuricomponent()是对字符进行编码。
(2)decodeuri(),和decodeuricomponent()是对相应编码过的字符进行解码。
区别:
方法中包含的uri()的编码和解码不会对本身属于uri的特殊字符进行编码,例如冒号等;
方法中包含uricompent()的编码和解码则会对它发现的任何非标准字符进行编码进行编码;
5.demo
<form id="test" accept-charset="utf-8" onsubmit="document.charset='utf-8'">
<input type="text" id="name">
<input type="text" id="age">
</form>
通过调用ajax:
$("#test").form("submit",
{
url:encodeuri("/a/bmethod"+new date().gettime()),//有时间函数不转义加上encodeuri
onsubmit:function(p){
p.name=$("#name").val(),
p.age=$("#name").
}
},
success:function(data)
{
data.imagesrc=decodeuricomponent(data.imageurl);//对imageurl进行解密
}
)
上一篇: js清除定时器注意点
下一篇: Spark的lazy特性有什么意义呢?
推荐阅读
-
表单提交错误后返回内容消失问题的解决方法(PHP网站)
-
form表单提交后结果乱码的解决方法
-
表单提交错误后返回内容消失问题的解决方法(PHP网站)
-
关于Iframe实现局部刷新问题:当提交注册表单后,我想把注册成功的信息显示在页面中,现在结果时不能显示在本页面,而是显示在了那个iframe中了,怎么办
-
php-点击按钮后,怎么将form表单中的数据提交到弹窗中显示?
-
php中form表单的值用submit提交后,如何在下个页面取出来
-
一直没注意form表单提交后都是自动刷新的吗?
-
使用AJAX实现UTF8编码表单提交到GBK编码脚本无乱码的解决方法
-
php-点击按钮后,怎么将form表单中的数据提交到弹窗中显示?
-
表单提交错误后返回内容消失问题的解决方法(PHP网站),表单php