使用AJAX实现UTF8编码表单提交到GBK编码脚本无乱码的解决方法_应用技巧

来源:脚本之家  责任编辑:小易  

能否详细2113一点,提交表单,传的中文参数吗?如果是的话5261那是后台4102获取的这个参数乱码了?如果是的话那你1653试试这个 String name = new String(name.getByte("iso-8859-1"),"GBK");中文在传输过程中是按照iso-8859-1的格式传输的; 再看看你的项目中的编码格式是不是GBK乱码问题描述的太不清楚了,最好贴出代码追问这个 String name = new String(name.getByte("iso-8859-1"),"GBK"); 是放在哪里呢??我的文件是html+JS+PHP的,就是表单在html,通过JS的$.ajax的url到PHP,php把接收到的内容提交到SQLwww.zgxue.com防采集请勿采集本网。

1、表单项目1 GBK编码格式

这个得看你的提交方式,你form表单的提交方式和你ajax的提交方式是否一致,不一致的话你后台是否进行了乱码的处理?当提交的数据有中文的时候就会出现乱码,post提交可以用编码过滤器来解决,也可以用request.setCharacterEncoding("utf-8"); ge

用户采集单是GBK编码,通过GET/POST提交上来的数据也是GBK格式,无需做任何处理

request内部解析器使用Unicode,要想解决乱码,修改request的解析器编码就行了,在servlet中加 request.setCharacterEncoding("utf-8");

测试源码

我用拦截器解决了这个问题 web.xml里面的配置 SubmitFilter common.SubmitFilter SubmitFilter /* 拦截器文件里面的代码: package common; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="GB2312"></head><body><li><a href="gbkForm.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >GBK同编码表单不乱码</a><li><a href="utf8Form.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >UTF8表单修改前乱码</a><li><a href="utf8FormRepair.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >UTF8表单修改为AJAX方案后不乱码</a><li><a href="otherForm.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >其他GBK同编码表单不乱码</a><li><a href="http://www.miaoqiyuan.cn/p/utf8-submit-gbk-ajax-autocharset" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >测试程序说明</a></a><hr /><h2>GET:</h2><form action="gbkSubmit.asp" method="GET" >QQ:<input name="qq" value="QQ" /><br />姓名:<input name="name" value="姓名"/><br />地址:<input name="address" value="地址地址地址"/><br /><button type="submit">GBK表单提交到GBK脚本后不会乱码</button></form><h2>POST:</h2><form action="gbkSubmit.asp" method="POST" >QQ:<input name="qq" value="QQ" /><br />姓名:<input name="name" value="姓名"/><br />地址:<input name="address" value="地址地址地址"/><br /><button type="submit">GBK表单提交到GBK脚本后不会乱码</button></form></body></html>

编码问题:如果单纯是页面出现乱码,将页面文件的编码样式统一设置成UTF-8(gbk),新建html文件时,编码是ANSI,只需要通过记事本将编码设置为UTF-8(gbk),这样可以避免许多乱码问题,如:js放在项目中的乱码等。再将页面的编码也设置成对应的

2、表单项目2 UTF8编码格式(可以在不同的域名下)

ajax提交之前 以JQuery为例 var options = { target: '', // target element(s) to be updated with server response // url:url, beforeSubmit: showRequest, // pre-submit callback success: showResponse // post-submit callback }; 有个 b

用户采集单是UTF8编码,通过GET/POST提交上来的数据也是UTF8格式,用表单项目1中的程序接收到的是乱码

测试代码(修改前,提交乱码):

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF8"></head><body><li><a href="gbkForm.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >GBK同编码表单不乱码</a><li><a href="utf8Form.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >UTF8表单修改前乱码</a><li><a href="utf8FormRepair.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >UTF8表单修改为AJAX方案后不乱码</a><li><a href="otherForm.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >其他GBK同编码表单不乱码</a><li><a href="http://www.miaoqiyuan.cn/p/utf8-submit-gbk-ajax-autocharset" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >测试程序说明</a></a><hr /><h2>GET:</h2><form action="gbkSubmit.asp" method="GET" >QQ:<input name="qq" value="QQ" /><br />姓名:<input name="name" value="姓名"/><br />地址:<input name="address" value="地址地址地址"/><br /><button type="submit">UTF8表单提交到GBK脚本后会乱码</button></form><h2>POST:</h2><form action="gbkSubmit.asp" method="POST" >QQ:<input name="qq" value="QQ" /><br />姓名:<input name="name" value="姓名"/><br />地址:<input name="address" value="地址地址地址"/><br /><button type="submit">UTF8表单提交到GBK脚本后会乱码</button></form></body></html>

不需要改变页面编码,只需要修改表单Action地址,增加name=”ConvertCallBack” value=”ProjectA/FormGBK”、name=”ConvertItems” value=”name,qq,bb” 的两个 input即可,不用对页面进行其他调整

编码设置,转换器自动操作。

<form action="convert/utf8.asp"...<input name="ConvertCallBack" value="ProjectA/FormGBK"><input name="ConvertItems" value="name,qq,address"/><!-- 根据表单实际情况,修改表单项目 -->

测试代码(修改后)

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF8"></head><body><li><a href="gbkForm.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >GBK同编码表单不乱码</a><li><a href="utf8Form.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >UTF8表单修改前乱码</a><li><a href="utf8FormRepair.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >UTF8表单修改为AJAX方案后不乱码</a><li><a href="otherForm.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >其他GBK同编码表单不乱码</a><li><a href="http://www.miaoqiyuan.cn/p/utf8-submit-gbk-ajax-autocharset" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >测试程序说明</a></a><hr /><h2>GET:</h2><form action="convert/utf8.asp" method="GET" >QQ:<input name="qq" value="QQ" /><br />姓名:<input name="name" value="姓名"/><br />地址:<input name="address" value="地址地址地址"/><br /><input name="ConvertCallBack" value="../gbkSubmit.asp" /><input name="ConvertItems" value="name,qq,address" /><button type="submit">AJAX转码方案</button></form><h2>POST:</h2><form action="convert/utf8.asp" method="POST" >QQ:<input name="qq" value="QQ" /><br />姓名:<input name="name" value="姓名"/><br />地址:<input name="address" value="地址地址地址"/><br /><input name="ConvertCallBack" value="../gbkSubmit.asp" /><input name="ConvertItems" value="name,qq,address" /><button type="submit">AJAX转码方案</button></form></body></html>

3、表单项目3 GBK编码格式(可以在不同的域名下)

没有任何影响,只要按照表单1的标准编写 参数即可

测试代码:

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="GB2312"></head><body><li><a href="gbkForm.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >GBK同编码表单不乱码</a><li><a href="utf8Form.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >UTF8表单修改前乱码</a><li><a href="utf8FormRepair.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >UTF8表单修改为AJAX方案后不乱码</a><li><a href="otherForm.html" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >其他GBK同编码表单不乱码</a><li><a href="http://www.miaoqiyuan.cn/p/utf8-submit-gbk-ajax-autocharset" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >测试程序说明</a></a><hr /><h2>GET:</h2><form action="gbkSubmit.asp" method="GET" >QQ:<input name="qq" value="QQ" /><br />姓名:<input name="name" value="姓名"/><br />地址:<input name="address" value="地址地址地址"/><br />Other1:<input name="other1" value="Other1"/><br />Other2:<input name="other2" value="Other2"/><br />Other3:<input name="other3" value="Other3"/><br />Other4:<input name="other4" value="Other4"/><br />Other5:<input name="other5" value="Other5"/><br />Other6:<input name="other6" value="Other6"/><br />Other7:<input name="other7" value="Other7"/><br />Other8:<input name="other8" value="Other8"/><br />Other9:<input name="other9" value="Other9"/><br /><button type="submit">GBK表单提交到GBK脚本后不会乱码</button></form><h2>POST:</h2><form action="gbkSubmit.asp" method="POST" >QQ:<input name="qq" value="QQ" /><br />姓名:<input name="name" value="姓名"/><br />地址:<input name="address" value="地址地址地址"/><br />Other1:<input name="other1" value="Other1"/><br />Other2:<input name="other2" value="Other2"/><br />Other3:<input name="other3" value="Other3"/><br />Other4:<input name="other4" value="Other4"/><br />Other5:<input name="other5" value="Other5"/><br />Other6:<input name="other6" value="Other6"/><br />Other7:<input name="other7" value="Other7"/><br />Other8:<input name="other8" value="Other8"/><br />Other9:<input name="other9" value="Other9"/><br /><button type="submit">GBK表单提交到GBK脚本后不会乱码</button></form></body></html>

全部测试包下载地址 anycharset_jb51.rar

utf8.asp

<% @codepage=936 %><% CallBack = Server.Htmlencode(Request("ConvertCallBack")) Items = Split(Request("ConvertItems"),",") if len(request.form) > 0 then method = "POST" else method = "GET" end if%><!DOCTYPE html><html lang="zh-CN"><head><meta charset="GB2312"><script src="http://www.miaoqiyuan.cn/wp-includes/js/jquery/jquery.js"></script></head><body><form action="<%=CallBack%>" method="<%=method%>" id="AutoPOST"><% for each Item in Items if trim(Item) <> "" then Item = Server.Htmlencode(Item)%><% = Item %> : <textarea name="<% = Item %>" id="<% = Item %>"></textarea><br /><script>jQuery.post("utf8_convert.asp?MiaoQiYuanAutoConvertItem=<%=Item%>&<%=Request.QueryString%>","<%=Request.Form%>",function(res){ jQuery("#<% = Item %>").val(res);});</script><% end if next%><button type="submit">Waiting...</button><script type="text/javascript">setTimeout(function(){ jQuery("#AutoPOST").submit();},200);</script></body></html>

utf8_convert.asp

<% @codepage=65001 %><% function NotXSS(html) NotXSS = html NotXSS = replace(NotXSS, "<", "&lt;") NotXSS = replace(NotXSS, ">", "&gt;") NotXSS = replace(NotXSS, """", "&quote;") end function '防止参数冲突,使用了 MiaoQiYuanAutoConvertItem Response.Write NotXSS(Request(Request.QueryString("MiaoQiYuanAutoConvertItem")))%>

到此这篇关于使用AJAX实现UTF8编码表单提交到GBK编码脚本无乱码的解决方法的文章就介绍到这了,更多相关UTF8编码表单提交到GBK编码内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

<system.web><globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/> </system.web>web.config配置5261试41021653试,这个2113问题多简单的。data="UserName=" +escape(document.getElementById("UserName").value)+"&PassWord="+escape(document.getElementById("PassWord").value)+"&RealName="+escape(document.getElementById("RealName").value);用escape个就可以了啊。5261我今天做的4102,asp程序就是1653用的这个,有url转码内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 在线扫描探测检查asp站点木马后门的程序
  • dbtree 1.3.2
  • asp操作access提示无法从指定的数据表中删除原因分析及解决
  • 一个非常简单的将半角转换为中文的函数
  • asp中提示至少一个参数没有被指定值 解决方法
  • asp 去除最后一个逗号为空字符串的代码
  • asp实现限制搜索的关键字的函数
  • javascript在asp页面中实现掩码文本框效果代码
  • chat.asp聊天程序的编写方法
  • asp怎么获取毫秒数实现代码
  • ajax异步提交表单,得到的中文是乱码,
  • 页面是GBK的,用$.ajax去提交表单,中文显示乱码,...
  • 为什么Form表单提交不是乱码,而ajax提交会是乱码
  • 为什么表单提交数据库没有乱码而ajax提交确实乱码啊
  • 为什么Form表单提交不是乱码,而ajax提交会是乱码
  • jquery easyui form 提交时,输入的中文到后台变成...
  • ext 表单提交或ajax请求返回的信息中文乱码,后台r...
  • 如何解决jquery提交表单序列化乱码问题
  • 用的ajax提交的表单,js base64编码怎么用
  • 项目部署到WEbSphere服务器上 ajax提交返回的数据...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全asp基础应用技巧数据库相关asp class类存储过程小偷/采集木马相关fso专题首页asp编程在线扫描探测检查asp站点木马后门的程序dbtree 1.3.2asp操作access提示无法从指定的数据表中删除原因分析及解决一个非常简单的将半角转换为中文的函数asp中提示至少一个参数没有被指定值 解决方法asp 去除最后一个逗号为空字符串的代码asp实现限制搜索的关键字的函数javascript在asp页面中实现掩码文本框效果代码chat.asp聊天程序的编写方法asp怎么获取毫秒数实现代码推荐4款傻瓜型的asp服务器软件(关于“未指定的错误”的问题 的比错误类型:provider (0x80004005c#入门教程之listbox控件使用方法utf-8 网页不显示+utf-8网页乱码asp 日期格式化问题microsoft jet database engine(asp中设置session过期时间方法总sql查询语句通配符与access模糊查asp获取url参数的几种方法分析总asp javascript值的互相传递方法asp 性能测试报告 学习asp朋友需要了解的asp中实现定时发送邮件的代码分享asp运行出错:缺少对象: ""xmldoc.docume网站开发防止中文乱码需要了解的codepageasp access实现网站计数器(访问量)非常不错的列出sql服务器上所有数据库的aasp 读取通过表单发送的post数据[教程+分享]具有良好体验度的web注册系统asp页面提高的访问速度的方法详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved