程序员

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

作者:admin 2021-04-06 我要评论

1、表单项目1 GBK编码格式 用户采集单是GBK编码,通过GET/POST提交上来的数据也是GBK格式,无需做任何处理 测试源码 !DOCTYPE htmlhtml lang="zh-CN"headmeta ch...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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

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

测试源码

<!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>

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

用户采集单是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="/uploads/allimg/210406/1150593T4-0.jpg"></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编码内容请搜索尊托云数以前的文章或继续浏览下面的相关文章希望大家以后多多支持尊托云数!


原文链接:https://m.jb51.net/article/196003.htm

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 植物大战僵尸 修改存档和金钱

    植物大战僵尸 修改存档和金钱

  • 小程序开发一个朋友圈热门的互动答题应

    小程序开发一个朋友圈热门的互动答题应

  • 微信小程序路由实战

    微信小程序路由实战

  • 315 晚会 9 大黑料曝光,数字化转型亟

    315 晚会 9 大黑料曝光,数字化转型亟

腾讯云代理商
精彩导读
海外云服务器
热门资讯
腾讯云代理商