form表单提交后结果乱码的解决方法

Posted debugsxs223

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了form表单提交后结果乱码的解决方法相关的知识,希望对你有一定的参考价值。

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进行解密
)

 

以上是关于form表单提交后结果乱码的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

表单提交后数据库插入数据出现乱码怎么解决

form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决

form表单提交乱码问题?

easyui表单提交问题

Javascript生成json之后提交表单向其他web项目出现问题,传参乱码。

eclipse中JSP表单提交运行后出现乱码