AJAX中POST或GET传递中文字符乱码的解决办法(备忘)(0 位领导批示)

用AJAX传递中文时..FF会很聪明的自动将中文字符转成十六进制.而BC的IE却非得自己处理..-____!!

最简单的方法就是在需要转义的地方使用JS的内置函数 encodeURIComponent

P.S.最初是用escape做中文转义..注意它与 encodeURIComponent 的区别

Tags : , ,

Ajax中Request缓存的解决方法(1 位领导批示)

今天写到的一个应用中用到了Ajax请求数据.
FF下一切正常.IE下却被顽固的页面缓存给难住了..必须要清理掉缓存才能正确重新请求数据

必须想办法解决Ajax在IE下的缓存问题

其实解决的方法很简单..就是创建httpRequest对象时加上这么一句

?View Code JAVASCRIPT
1
xmlHTTP.setRequestHeader("If-Modified-Since","0");

这样缓存问题就轻松解决了..

JS中文字符串转换unicode编码函数(0 位领导批示)

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

  1. function uniencode(text)
  2. {
  3.     text = escape(text.toString()).replace(/\+/g, "%2B");
  4.     var matches = text.match(/(%([0-9A-F]{2}))/gi);
  5.     if (matches)
  6.     {
  7.         for (var matchid = 0; matchid < matches.length; matchid++)
  8.         {
  9.             var code = matches[matchid].substring(1,3);
  10.             if (parseInt(code, 16) >= 128)
  11.             {
  12.                 text = text.replace(matches[matchid], '%u00' + code);
  13.             }
  14.         }
  15.     }
  16.     text = text.replace('%25', '%u0025');
  17.  
  18.     return text;
  19. }

当然服务器端要对编码过的字符串进行第二次转码.把字符串转换成UTF-8编码.

全文阅读 »

随机显示的10篇日志

评论最多的10篇日志

浏览最多的10篇日志