• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别实例分析

    本文实例讲述了IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别。分享给大家供大家参考,具体如下:

    前面介绍了《Javascript基于AJAX回调函数传递参数》,这里主要来分析一下ajax传递中文参数过程中针对不同浏览器的乱码处理方法。

    Ajax传递参数为中文时出现乱码,我遇到的情况是:

    1.我的数据库连接 编码为 GB2312,latin1_swedish_ci

    2.php 文件编码格式为 UTF-8,浏览器显示编码为 : UTF-8

    3.我的页面显示方式为两种:

    一)页面加载时自动加载,每隔一秒刷新一次

    二)点击一个分机组名称时,获得该分机组的相应的成员卡片信息

    4.对于第一种情况的处理:

    control.php页面上获得session:

    读取数据库的内容:

    line 53:

    复制代码 代码如下:
    $grouparr[] = iconv("GB2312","UTF-8",$g[0]); //数据库内容转换为 UTF-8,这样能正常显示页面上的中文

    line106:

    复制代码 代码如下:
    $_SESSION['dispatchgroup'] = iconv("UTF-8","GB2312",$grouparr[0]);//将转换的中文修改为 GB2312,用于在 dispatchinfo.php 文件中获得查询的条件值,获得GB2312编码的值。

    dispatchinfo.php: line 291

    if($_SESSION['dispatchgroup']){
      $groupaddressinfo = function_listaddressesbygroup($_SESSION['dispatchgroup'],1,$value,0,$_SESSION['dispatchexten'],$_SESSION['dispatchgrouppage']);  
      //2013-5-17$groupaddressinfo = "listaddressesbygrouptype|0|LocalExt|1|12|1,,,801,空闲,,|1,,,802,不在线,,|1,,,803,空闲,,|1,,,804,不在线,,|,,,805,不在线,,|,,,806,不在线,,|,,,807,不在线,,|,,,808,不在线,,|,,,809,不在线,,|,,,810,不在线,,|5,餐厅,,811,10.1.6.189;连接|6,,,812,user2;断开|";
    }
    
    

    此种情况IE和FF,均能正常显示。

    5.对于第二种情况:

    点击“分机组”名称,获得点击的分机组的中文名称,通过Ajax 传递到 dispatchinfo2.php 文件中进行处理,修改前,js点击事件后获得的中文名称,alert均为正常值【格式为UTF-8】,此时数据库中的内容为GB2312,这时,在经过 iconv转码就会出现错误。

    因为只对于第一种情况,我在处理时采用转换编码的方式

    复制代码 代码如下:
    $groupname = iconv("GB2312","UTF-8",$groupname);

    此时再次编码就会出现错误了,

    解决方法:

    JS 的异步提交处理:

    checkval(); 
    var ajax = InitAjax();
    var url = "dispatchinfo2.php?"+arges;
    //2013-08-21 limx 中文编码问题
    url = encodeURI(encodeURI(url));
    ajax.open('GET',url,true);
    
    

    dispatchinfo2.php

    $groupname = urldecode($groupname);
    $groupname = iconv("utf-8","GB2312",$groupname);
    
    

    四行代码完美解决中文编码的问题。

    因为AJAX发送数据都是采用UTF-8编码的方式发送的,所以要在服务器 端进行编码转换(我这里页面是采用GB2312编码的,如果是采用UTF-8的话应该不会有这步的问题),所以我在服务器端进行了UTF-8转 GB2312

    希望本文所述对大家ajax程序设计有所帮助。

    您可能感兴趣的文章:
    • jquery post方式传递多个参数值后台以数组的方式进行接收
    • Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
    • jQuery Ajax向服务端传递数组参数值的实例代码
    上一篇:ajax调用简单实例
    下一篇:Ajax异步提交数据返回值的换行问题实例分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别实例分析 浏览器,与,关于,Ajax,传递,