zoukankan      html  css  js  c++  java
  • 黄聪:解决Jquery在GET方式传递参数时gb2312中文编码乱码

    数据传递编码仅支持UTF-8,这个虽然是全球统一编码,但是也要考虑一下中国人名本地网站的编码问题吧

    而且 在jquery的发送端,无论你设置了程序级编码还是页面级编码,jquery都会使用utf-8的编码方式传递过去

    有些网站都运营好长事件了,完全修改UTF-8确实有点困难,好了牢骚就发到这里,下面是自己写的一个解决例子

    希望能对大家有一些帮助。

    原理:

    在ajax发送端使用escape方法。然后在接收端使用 unescape方法转换

    例子:

    gb2312.html

    1. <html> 
    2. <head> 
    3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    4. <SCRIPT LANGUAGE="JavaScript" src="js/jquery-1.2.4.js"></script> 
    5.  <SCRIPT LANGUAGE="JavaScript"> 
    6.   <!--  
    7.     $(document).ready(function(){  
    8.        $("#btn").click(function(){  
    9.          $.get("php/gb2312.php",function(data){  
    10.              
    11.                 $("#content").html(unescape(data));//这里unescape一下就可以了  
    12.            
    13.          })  
    14.            
    15.        });  
    16.     });  
    17.   //--> 
    18.   </SCRIPT> 
    19. <title>无标题文档</title> 
    20. </head> 
    21.  
    22. <body> 
    23.  <div ID="btn">获得ajax中文</div> 
    24.  <div ID="content"></div> 
    25.  
    26. </body> 
    27. </html> 

    gb2312.php

    1. <?  
    2. echo escape(" GB2312中文");  
    3. function escape($str) {  
    4.    preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);  
    5.    $ar = $r[0];  
    6.    foreach($ar as $k=>$v) {  
    7.      if(ord($v[0]) < 128)  
    8.        $ar[$k] = rawurlencode($v);  
    9.      else 
    10.        $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));  
    11.    }  
    12.    return join("",$ar);  
    13. }  
    14. ?>  

  • 相关阅读:
    Kubernetes中Pod之间使用虚拟二层网络连接
    ResourceQuota和LimitRange实践指南
    Namespace集群环境的共享与隔离
    K8s生产架构
    K8s常用命令整理+名词解析
    K8s中的pv&&pvc
    Kubernetes保证集群内节点和网络安全
    Kubernetes中网络相关知识
    kubectl常用命令
    物理ceph集群+K8s
  • 原文地址:https://www.cnblogs.com/huangcong/p/2026880.html
Copyright © 2011-2022 走看看