Jquery强大的功能越来越收到广大朋友的喜爱,不过Ajax方面就有点太不照顾中国人民的感情了
数据传递编码仅支持UTF-8,这个虽然是全球统一编码,但是也要考虑一下中国人名本地网站的编码问题吧
而且在jquery的发送端,无论你设置了程序级编码还是页面级编码,jquery都会使用utf-8的编码方式传递过去
有些网站都运营好长事件了,完全修改UTF-8确实有点困难,好了牢骚就发到这里,下面是自己写的一个解决例子
希望能对大家有一些帮助。
原理:
在ajax发送端使用escape方法。然后在接收端使用 unescape方法转换
例子:
gb2312.html
- <html>
- <head>
- <meta
http-equiv="Content-Type" content="text/html; charset=gb2312" /> - <SCRIPT
LANGUAGE="JavaScript" src="js/jquery-1.2.4.js"></script> -
<SCRIPT LANGUAGE="JavaScript"> -
<!-- -
$(document).ready(function(){ -
$("#btn").click(function(){ -
$.get("php/gb2312.php",function(data){ -
-
$("#content").html(unescape(data));//这里unescape一下就可以了 -
-
}) -
-
}); -
}); -
//-- -
- <title>无标题文档</title>
- </head>
-
- <body>
-
<div ID="btn">获得ajax中文</div> -
<div ID="content"></div> -
- </body>
- </html>
gb2312.php
- <?
- echo
escape( "GB2312中文" ); - function
escape( $str){ -
preg_match_all( -
= $r[0]; -
as $k=>$v) { -
< 128) -
= $v);rawurlencode( -
-
= "%u".bin2hex(iconv("GB2312","UCS-2",$v)); -
} -
join( "",$ar); - }
- ?>