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

这篇文章主要介绍了用AJAX实现,多个不同编码的项目(GBK,UTF8)互相通过 POST/GET 汇总表单数据。最终实现 使用同一个页面接收 不同编码的 表单(GBK,UTF8),特别适合 JS 采集项目,需要的朋友可以参考下

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

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

测试源码







  • GBK同编码表单不乱码
  • UTF8表单修改前乱码
  • UTF8表单修改为AJAX方案后不乱码
  • 其他GBK同编码表单不乱码
  • 测试程序说明

    GET:

    QQ:
    姓名:
    地址:

    POST:

    QQ:
    姓名:
    地址:
  • 2、表单项目2 UTF8编码格式(可以在不同的域名下)

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

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

    
    
    
    
    
    
    
  • GBK同编码表单不乱码
  • UTF8表单修改前乱码
  • UTF8表单修改为AJAX方案后不乱码
  • 其他GBK同编码表单不乱码
  • 测试程序说明

    GET:

    QQ:
    姓名:
    地址:

    POST:

    QQ:
    姓名:
    地址:
  • 不需要改变页面编码,只需要修改表单Action地址,增加name=”ConvertCallBack” value=”ProjectA/FormGBK”、name=”ConvertItems” value=”name,qq,bb” 的两个 input即可,不用对页面进行其他调整
    编码设置,转换器自动操作。

    测试代码(修改后)

    
    
    
    
    
    
    
  • GBK同编码表单不乱码
  • UTF8表单修改前乱码
  • UTF8表单修改为AJAX方案后不乱码
  • 其他GBK同编码表单不乱码
  • 测试程序说明

    GET:

    QQ:
    姓名:
    地址:

    POST:

    QQ:
    姓名:
    地址:
  • 3、表单项目3 GBK编码格式(可以在不同的域名下)

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

    
    
    
    
    
    
    
  • GBK同编码表单不乱码
  • UTF8表单修改前乱码
  • UTF8表单修改为AJAX方案后不乱码
  • 其他GBK同编码表单不乱码
  • 测试程序说明

    GET:

    QQ:
    姓名:
    地址:
    Other1:
    Other2:
    Other3:
    Other4:
    Other5:
    Other6:
    Other7:
    Other8:
    Other9:

    POST:

    QQ:
    姓名:
    地址:
    Other1:
    Other2:
    Other3:
    Other4:
    Other5:
    Other6:
    Other7:
    Other8:
    Other9:
  • 全部测试包下载地址 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
    %>
    
    
    
    
    
    
    
    <% for each Item in Items if trim(Item) <> "" then Item = Server.Htmlencode(Item) %><% = Item %> :
    <% end if next %>

    utf8_convert.asp

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

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

    你可能感兴趣的:(asp)