Ajax中文乱码解决方案

£神魔★判官ぃ 2022-06-16 01:46 402阅读 0赞

原文章地址 Ajax中文乱码解决方案最终版-兼容IE和FF

Ajax技术的核心为JavaScript,而javascript使用的是UTF-8编码,因此在页面采用GBK或者其他编码,同时没有进行编码转换时,就会出现中文乱码的问题。以下是分别使用GET和POST方式传值,并且页面采用GBK和UTF-8编码在IE和FF下的不同测试结果和出现乱码时的解决方案




























































传值方式 客户端编码 服务器端编码 IE FF 解决方案
GET UTF-8 UTF-8 接收$_GET传递的参数时出现乱码 正常 客户端url=encodeURI(url)
GET GBK GBK 正常 接收$_GET传递的参数时出现乱码 客户端url=encodeURI(url)
服务器端
$str=iconv(“UTF-8”,”GBK”,$str)
POST UTF-8 UTF-8 接收$_GET传递的参数时出现乱码 正常 客户端url=encodeURI(url)
POST
UTF-8 UTF-8 接收$_POST传递的参数时正常 接收$_POST传递的参数时正常 推荐采用方式
POST GBK GBK 正常 接收$_GET传递的参数时出现乱码 客户端url=encodeURI(url)
服务器端
$str=iconv(“UTF-8”,”GBK”,$str)
POST GBK GBK 接收$_POST传递的参数时出现乱码 接收$_POST传递的参数时出现乱码 服务器端
$str=iconv(“UTF-8”,”GBK”,$str)

以下为测试的代码:

客户端index.PHP

[php] view plain copy

  1. <?php
  2. header(“Content-type:text/html;charset=UTF-8”);
  3. ?>
  4. Loading

服务器端t.php

[php] view plain copy

  1. <?php
  2. header(“Content-type:text/html;charset=UTF-8”);
  3. //echo “这是测试中文”; //如果是直接这样向客户端输出中文,不通过$_GET或者$_POST传递的参数
  4. //则只需客户端和服务器端编码一致,无论是UTF-8还是GBK,都不会出现乱码
  5. echo $_GET[‘id’].$_GET[‘nu’];
  6. //echo iconv(“UTF-8”,”GBK”,$_GET[‘id’].$_GET[‘nu’]);
  7. //echo $_POST[‘id’].$_POST[‘nu’];
  8. //echo iconv(“UTF-8”,”GBK”,$_POST[‘id’].$_POST[‘nu’]);
  9. ?>

另在IE中可能存在这样一个问题:

由于出现错误c00ce56e而导致此项操作无法完成

此时设置编码时将header(‘Content-Type:text/html;charset=utf8’)改为header(‘Content-Type:text/html;charset=utf-8’)即可。

发表评论

表情:
评论列表 (有 0 条评论,402人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ajax中文

    ajax乱码解决总结 第一,javascript沿用java的字符处理方式,内部是使用unicode来处理所有字符的, 第二,utf-8是每个汉字(unicode字符)

    相关 中文解决方案

    一、中文问题的来源 计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理。随着计算机的发展,为了适应世界其它

    相关 Ajax解决中文问题

    Ajax不支持多种字符集,它默认的字符集是UTF-8,所以在应用Ajax技术的程序中应及时进行编码转换,否则对于程序中出现的中文字符将变成乱码。 一般情况下,有以下两种情况可