自定义搜索
上一篇:上传图片有时可以,有时不可以
下一篇:Lindsay小镇G牌驾照考试高速路线;
XMLHttpRequest中文乱码解决方法(附代码)
米娅 2012年10月17日 22:53:51

因为网页发评论时程序使用XMLHttpRequest,在IE9下中文就显示乱码,据说IE8下是好的。

我查找了些资料,大致是说,XMLHttpRequest是默认网页为utf-8格式,如果网页不是utf-8中文就会发生乱码。我后来修改了一个地方就把问题解决了,因为另一个地方程序里已经有了。这里把两个地方都显示一下:

1)这里编码是gb2312,通过url发送信息,先对url使用encodeURI:

 
  url = encodeURI(url);  
 
  if(window.XMLHttpRequest) { //Mozilla 浏览器
   AJAX.http_request = new XMLHttpRequest();
   if (AJAX.http_request.overrideMimeType) {//设置MiME类别
  //  AJAX.http_request.overrideMimeType('text/xml;charset=gb2312');  // changed by Mia on Oct. 17
   }
  }else if (window.ActiveXObject) { // IE浏览器
   try {
    AJAX.http_request = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
    try {
     AJAX.http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
   }
  }
  if (!AJAX.http_request) {
   window.alert("不能创建XMLHttpRequest对象实例.");
   return false;
  }

  AJAX.http_request.onreadystatechange = AJAX.processRequest;
  AJAX.http_request.open("GET", url+"&"+Math.random(), true);
  AJAX.http_request.send(null);

2) 从上面得到数据到$content后,将数据用iconv由utf-8转换为gb2312后再写入数据库。

   $content = iconv("utf-8","gb2312", $content); 

另外,网页定义编码时php用这个header('Content-Type: text/html; charset='gb2312');


共1页
相关链接
1. 网页自动跳转代码
2. 背景固定CSS代码
3. 在本页内运用标签跳转(附html代码)
4. 网页防复制(附代码)
5. Drupal 7: 多站点,一套核心代码,一套数据库,共用用户数据,一次登陆,同步session
6. 将Excel数据保存到MySQL数据库及PHP读Excel数据(附代码)
7. 自动发帖机原理和代码
8. 传递selected OPTION 的值到表单的一个hidden INPUT(附代码)
9. 如何解决有些浏览器flash文件(.swf)不显示的问题(附代码)
10. 如何用Adobe Flash CS4和ActionScript 3.0添加超级链接(附代码)
11. 如何得到flash(.swf)的资源,比如图片、代码 - 反编译
12. 如何在Adobe Flash CS4中给flash加入超级链接(附代码)
13. 如何在网页嵌入flash,并无警告提示播放(附代码)
14. 网页右键禁用JavaScript代码
15. 在结果页显示前显示进度条,代码
16. 用Session和Cookie结合实现登陆认证(附代码)