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

}

)

原文地址:https://www.cnblogs.com/debugsxs223/p/11221795.html

时间: 2024-10-10 05:31:32

form表单提交后结果乱码的解决方法的相关文章

JSP表单提交出现中文乱码的解决方法

1)post方式 在servlet的doGet( )  doPost( )  中增加以下代码: response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); 2)get方式 在tomcat中con/server.xml中修改 <Connector port="8088" protocol="HTTP/1.1&qu

form表单提交后保持输入的值

1.form表单提交后,继续保持原来输入的值 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="UTF-8"> <title>form表单提交后保持输入的值</title> </head> <body> <form class="form

怎么实现form表单提交后不重新刷新当前页面

怎么实现表单提交后不重新刷新当前页面 如何实现表单提交后不重新刷新当前页面 <form name='form1' id='form1' action='/xbcw/cw/xx_xx.action' method='post'> <input type="button" id="btnSubmit" name="btnSubmit" value="保存" onclick="addKp()"

关于form表单提交ajaxForm和ajaxSubmit的用法与区别

前几天在学习form表单提交时看到这两种方法,这两种方法都是实现form的ajax提交的方法,看了很多资料还是不太明白其用法和区别,最后直接自己写demo,很快就理解,所以说实操是学习的最快捷直接的途径.好了,下面回到正题: 在使用这两种方法之前,首先需要安装form.js的插件,下载就不放了,网上一搜就有: <script src="/Tool/HtmlPage/S45/js/jquery-form.js"></script> 一.首先说用法,ajaxForm

Layui form表单提交注意事项

// 表单提交form.on('submit(first1)', function (data) { var articleFrom = data.field; $.ajax({ type:"POST", url:"/user/upDate", data:articleFrom, dataType:"JSON", success:function (data) { if(data.flag){ layer.closeAll(); } } });

jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用

一.jQuery Form的其他api  1.  formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可以连环调用: 否, 这个方法返回的是一个字符串. 例子: var queryString = $('#myFormId').formSerialize(); // the data could now be submitted using $.get, $.post, $.ajax, etc $.post(

表单提交中文后台乱码

通过form表单提交到后台 通过form传入后台,提交方式分为post和get两种.两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上.Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于: 1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址会出现传入到后台的参数:而Post提交后地址栏中的地址不会出现参数. 2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式

struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($("#textValue").val() == "") {3                 $("#errortip").html("<font color='#FF0000'>请输入查询内容</font>")

ajax form表单提交 input file中的文件

ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了解决这个问题我走了不少弯路: 1.用原生的 input file , 不支持ajax上传文件,你肯定会说可以用 ajax form表单上传了呀?不过我后面还要调用上传成功后用js处理一些对话框,所以这种方法排除 2.用了 uploadify 上传插件,弄出来能上传东西,结果不理想:因为不能判断上传的