php+ajax 出现乱码 大家做php一般是utf8还是gb2112啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql_query("SET NAMES gb2312");header("Content-type: text/html;charset=GBK"); 这两句我有写啊 我写的是charset=gb2312js接受表单的值时如果不用escape函数 在php中显示是乱码 如果用了显示是%u63AA%u52E4%u53BF这种 是js中escape产生的乱码的原因 所以显示就是那个我用urlencode是没用的难道我用unescape再显示页面还原?如果js页面不用escape的话 好象写不进去 错了 如果js页面不用escape的话 写进php就是乱码 用了就是%dfsa31之类的了怎么办? 你要在PHP端对你用过JS的escape编码的数据解码,我发你一段,由于这里没发UTF8 TO GB2312的类,所以GetGb2312函数不可用,你可以到我空间里下载更多的编码处理的类:/* *使用 PHP 解析 javascript escape() 编码过的字串为UTF-8 *例:1 * *$tem=new UnEscape(); *echo $tem->GetUtf8("%u624B%u673A%u95E8%u6237"); *echo $tem->GetGb2312("%u624B%u673A%u95E8%u6237"); */ function UnEscapeToUtf8($ar){ foreach($ar as $val){ $val = intval(substr($val,2),16); if($val < 0x7F){ // 0000-007F $c .= chr($val); }elseif($val < 0x800) { // 0080-0800 $c .= chr(0xC0 | ($val / 64)); $c .= chr(0x80 | ($val % 64)); }else{ // 0800-FFFF $c .= chr(0xE0 | (($val / 64) / 64)); $c .= chr(0x80 | (($val / 64) % 64)); $c .= chr(0x80 | ($val % 64)); } } return $c; } class UnEscape{ function GetUtf8($value=""){ $text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",UnEscapeToUtf8,$value); return urldecode($text); } function GetGb2312($value=""){ $text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",UnEscapeToUtf8,$value); $obj=new Gb2312Utf8(); return $obj->Utf8ToGb2312(urldecode($text)); }} 问题找到解决的办法了 我在js里不用escape函数 js是utf-8编码吧 而我的php是gb2312 我在php用函数把utf-8转化为gb就OK了谢谢LS的 收藏代码学习中 header("Content-Type:text/html;charset=GB2312"); //中文支持在php代码里加入这个就可以了 64位Windows Server 2208 R2不能运行php phpmailer群发邮件遇到问题了 乍样确定数据趋势,以及变化多大?? 帮忙查一下sql语句中的错误 现在的服务器,他们的网卡是主板上集成的还是外置的啊? 一个关于PHP发邮件问题!!请大家帮帮忙! [原创]Zend进军中国:PHP在中国的机遇 Session的怪问题... 请帮我看看这段代码!!!!!!!!!!!!!!! 表单提交变量名杂了? 菜鸟提问,可惜没有分数了,大侠帮下啊????? js如何传递值
js接受表单的值时如果不用escape函数 在php中显示是乱码
如果用了显示是%u63AA%u52E4%u53BF这种
我用urlencode是没用的
难道我用unescape再显示页面还原?
如果js页面不用escape的话 好象写不进去
怎么办?
/*
*使用 PHP 解析 javascript escape() 编码过的字串为UTF-8
*例:1
*
*$tem=new UnEscape();
*echo $tem->GetUtf8("%u624B%u673A%u95E8%u6237");
*echo $tem->GetGb2312("%u624B%u673A%u95E8%u6237");
*/
function UnEscapeToUtf8($ar){
foreach($ar as $val){
$val = intval(substr($val,2),16);
if($val < 0x7F){ // 0000-007F
$c .= chr($val);
}elseif($val < 0x800) { // 0080-0800
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}else{ // 0800-FFFF
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
return $c;
} class UnEscape{
function GetUtf8($value=""){
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",UnEscapeToUtf8,$value);
return urldecode($text);
} function GetGb2312($value=""){
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",UnEscapeToUtf8,$value);
$obj=new Gb2312Utf8();
return $obj->Utf8ToGb2312(urldecode($text));
}
}
而我的php是gb2312 我在php用函数把utf-8转化为gb就OK了
谢谢LS的 收藏代码学习中
在php代码里加入这个就可以了