jsp环境下ajax乱码问题的解决

开心编程网   2010年01月26日 10:27   评论»  

AJAX传递中文字符串时必须把中文字符串编码成unicode,一般会用到JS的自带函数escape().不过找到了更好的函数来确决中文字符转换成unicode编码的函数

  • function uniencode(text)   
  • {   
  •     text = escape(text.toString()).replace(/\+/g, "%2B");   
  •     var matches = text.match(/(%([0-9A-F]{2}))/gi);   
  •     if (matches)   
  •     {   
  •         for (var matchid = 0; matchid < matches.length; matchid++)   
  •         {   
  •             var code = matches[matchid].substring(1,3);   
  •             if (parseInt(code, 16) >= 128)   
  •             {   
  •                 text = text.replace(matches[matchid], '%u00' + code);   
  •             }   
  •         }   
  •     }   
  •     text = text.replace('%25', '%u0025');   
  •     
  •     return text;   
  • 当然服务器端要对编码过的字符串进行第二次转码.把字符串转换成UTF-8编码.

  • function convert_int_to_utf8($intval)   
  • {   
  •     $intvalintval = intval($intval);   
  •     switch ($intval)   
  •     {   
  •         // 1 byte, 7 bits   
  •         case 0:   
  •             return chr(0);   
  •         case ($intval & 0x7F):   
  •             return chr($intval);   
  •     
  •         // 2 bytes, 11 bits   
  •         case ($intval & 0x7FF):   
  •             return chr(0xC0 | (($intval >> 6) & 0x1F)) .   
  •                 chr(0x80 | ($intval & 0x3F));   
  •     
  •         // 3 bytes, 16 bits   
  •         case ($intval & 0xFFFF):   
  •             return chr(0xE0 | (($intval >> 12) & 0x0F)) .   
  •                 chr(0x80 | (($intval >> 6) & 0x3F)) .   
  •                 chr (0x80 | ($intval & 0x3F));   
  •     
  •         // 4 bytes, 21 bits   
  •         case ($intval & 0x1FFFFF):   
  •             return chr(0xF0 | ($intval >> 18)) .   
  •                 chr(0x80 | (($intval >> 12) & 0x3F)) .   
  •                 chr(0x80 | (($intval >> 6) & 0x3F)) .   
  •                 chr(0x80 | ($intval & 0x3F));   
  •     }   
  • 这样中文字符串就可以转换成UTF-8编码.这种方法适合各种服务器环境..

    欢迎您发表评论:

    赞助商链接

    最新新闻动态

    友情链接

    关于站点 - 联系我们 - 网站大事 - 友情链接 - 免责声明 - 意见反馈 - 网站投稿 - 站点地图
    版权所有开心编程网禁止转载! Copyright © 2009-2010 All Rights Reserved. Email:hbhgfzk@126.com