2022-12-11 11:13来源:m.sf1369.com作者:宇宇
由于某种原因ajax默认就是uft-8的编码,那么我们使用一gbk就容易出现乱码的问题,下面我们就来告诉你php ajax乱码的解决方法吧。由于某种原因ajax默认就是uft-8的编码,那么我们使用一gbk就容易出现乱码的问题,下面我们就来告诉你php教程ajax乱码的解决方法吧。传递中文参数,然后修改数据库教程的。
先转 UTF32, 再正常转 UTF8, UTF8 最好还是只支持到 U+10FFFF, 不然有些字符在 UTF16 下无法表示...
c1 = read_UTF16();
if(c1 >= 0xD800 && c1 <= 0xDFFF)
{ /* Surrogate Area */
if(c1 >= 0xDC00)
return invalid .......
c2 = read_UTF16();
if(0 == c2)
return wouldblock.... or invalid ....
if(c2 < 0xDC00 || c2 > 0xDFFF)
return invalid .......
ucs4_ch = (c2 & 0x03FF) + (((c1 & 0x03FF) + 0x40) << 10);
}
字符串本身就可以当做字符数组处理。
譬如char *a= abcdefg;
printf(%c\n,a[0]);
结果即为'a'
这样改试试.
注释掉这段
/*
if($value < 223){
$str[$i] = rawurlencode(utf8_decode($str[$i]));
//先将utf8编码转换为ISO-8859-1编码的单字节字符,urlencode单字节字符.
//utf8_decode()的作用相当于iconv(UTF-8,CP1252,$v)。
}else{
$str[$i] = \u.strtoupper(bin2hex(iconv(UTF-8,UCS-2,$str[$i])));
}
*/
然后把这行$str[$i] = \u.strtoupper(bin2hex(iconv(UTF-8,UCS-2,$str[$i])));
拿出到底下.
========================
改完如下:
<?php
function escape($str) {
preg_match_all(/[\xc2-\xdf][\x80-\xbf]+|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]
{3}|[\x01-\x7f]+/e,$str,$r);
//匹配utf-8字符,
$str = $r[0];
//var_dump( $str);
$l = count($str);
for($i=0; $i<$l; $i++){
$value = ord($str[$i][0]);
/*
if($value >= 192 && $value <= 223) $i++;//单字节
elseif($value >= 224 && $value <= 239) $i = $i + 2;//双字节
elseif($value >= 240 && $value <= 247) $i = $i + 3;//三字节
*/
/*
if($value < 223){
$str[$i] = rawurlencode(utf8_decode($str[$i]));
//先将utf8编码转换为ISO-8859-1编码的单字节字符,urlencode单字节字符.
//utf8_decode()的作用相当于iconv(UTF-8,CP1252,$v)。
}else{
$str[$i] = \u.strtoupper(bin2hex(iconv(UTF-8,UCS-2,$str[$i])));
}*/
$str[$i] = \u.strtoupper(bin2hex(iconv(UTF-8,UCS-2,$str[$i])));
}
return join(,$str);
}
$title=天使宝贝'开心的笑;
$url= escape(iconv('gb2312','utf-8',$title));
echo $url;
?>
在网页头,加上这个:<meta http-equiv=content-type content=text/html; charset=utf-8 />