易截截图软件、单文件、免安装、纯绿色、仅160KB

AJAX中文乱码PHP完美解决

最近在做一个项目,遇到AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助。
众所周知,使用AJAX传送和接收中文参数时,如果不在客户端和服务器做相应的处理就会出现乱码问题,在网上相应的文章也不少,但是有的情况下很难从中找到符合自己理想的答案,我今天就是在网上找了很多,但是都差不多,讲ASP和JSP的比较多(我是用的PHP),所以到最后都没找到自己满意的答案。
AJAX的中文乱码可以大概分为两中,第一种是向服务器端发送中文参数时(xmlhttp.open(“get|post”,url,true)),服务器端接收到的为乱码,这个也是我今天遇到的问题,没做处理之前,在IE里是正常的,但是在Firefox里面就出现了乱码,我先把接收到参数输出到一个文本里,没有发现什么问题,郁闷了,然后我就把查询语句在输出来观察(我这里是要从数据库里查出与参数相关的东西),终于发现问题,IE和Firefox输出的参数不一样,虽然汉字上都一样,但是和前后连接上有细小的区别,于是认定了是编码问题,在网上查找了相关资料,都没能解决问题,但是得到一些启示,因为AJAX发送数据都是采用UTF-8编码的方式发送的,所以要在服务器端进行编码转换(我这里页面是采用GB2312编码的,如果是采用UTF-8的话应该不会有这步的问题),所以我在服务器端进行了UTF-8转GB2312,
$str=iconv("UTF-8","GB2312",$str);
然后测试,在Firefox上顺利解决了问题,以为大公告成了,可是再到IE下测试,发现IE又出现了问题,服务器端接收到的参数没值,这下就郁闷了,突然看到发送头设置了setRequestHeader("Content-Type","application/x-www-form-urlencoded");,就找到问题所在了,然后就在发送那里进行了参数编码:
geturl=encodeURI(geturl);
       geturl=encodeURI(geturl); //两次也可以写成geturl=encodeURI(encodeURI(geturl));
xmlhttp.open("GET",geturl,true);
然后再到服务器端进行URL解码:
   $str=urldecode($str); //解码
$ str =iconv("UTF-8","GB2312",$ str); //编码转换
   注意:解码必须在编码转换前面,不然得不到正确值
保存测试,IE和Firefox都能正常了。
第二种就是服务器端向客户端输出中文时出现乱码,这类问题网上的答案就比较多了,也都能解决,为了避免各位再去查找,我在这里就COPY下J
原因:AJAX在接收responseText


相关文档:

php curl的几个例子

使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据
了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。
PHP中的CURL函数库(Client URL Librar ......

PHP向一个字符串随机添加文字

 很久前在baidu回答问题时写的“向一个字符串随机添加文字”的解决方案,可以支持中英文
<?php
/*********************************************************
 describe:字符串处理,可以处理中英文
 function:向一个字符串随机添加文字
 author:  etongchina
 email2m ......

火车头discuz6.1完美采集的php接口文件

 
火车头官方提供的discuz6.1的php接口比较粗糙,基本不能满足需要,本人在采集的工作中使用的采集接口文件如下:
PS:对原文件的修改较大,程序中注释已经很详尽,这里就不多说了。
<?php
// header('Content-Type:text/html;charset=UTF-8');
//if(function_exists("mb_convert_encoding")){ ......

PHP~ 一言难尽~~~~~~~~~~我自己的故事

文章原先发表在CSDN论坛上面,但是后来觉得不太妥。所以没有在CSDN中继续写下去,转发到这里了。
原帖http://topic.csdn.net/u/20090910/13/fc1e87d1-79b8-488b-b94a-403a0147bca8.html?80258
-------------------------------------------------------------
唉~
学PHP也不知道有多长时间了。
反正从大一的时候开 ......

php遍历目录及文件

    //遍历目录及文件
    function get_all_files( $path )
    {
        $list = array();
        foreach( glob( $path . '/*') as $item )
        {
  & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号