数据传递编码仅支持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一下就可以了
- })
- });
- });
- //-->
- </SCRIPT>
- <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("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
- $ar = $r[0];
- foreach($ar as $k=>$v) {
- if(ord($v[0]) < 128)
- $ar[$k] = rawurlencode($v);
- else
- $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
- }
- return join("",$ar);
- }
- ?>
作者:黄聪
出处:http://www.cnblogs.com/huangcong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/huangcong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。