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代码里加入这个就可以了 frame中父窗口取得当前子窗口的title值,这样能不能取的到? 有人对ECShop有研究吗?我有个初级问题,关于上传图片的 求方法,截取字符串中的文字 PHP的十个高级技巧之八——PHP和Java 如何获取1年后的日期? 这次重装php,出现一个好怪问题,请问错在哪里.我的安装步骤没有错! 配置xp下的php出现问题,大家帮帮忙 请问一下thinkphp 查询条件 单引号转义的问题 php 访问局域网内共享文件夹下某个文件 tcp连接建立连接后 服务端如何主动发送消息给客户端 后端php 菜鸟提问,可惜没有分数了,大侠帮下啊????? 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代码里加入这个就可以了