java里面
String str="%E8%81%94%E9%80%9A";//这个utf-8编码
String ss=URLDecoder.decode(str,"UTF-8");
System.out.println(ss);//输出的值:联通而在php里面这个怎么转换?
已经找了好多天了,一直没有找到,希望各位帮帮忙
String str="%E8%81%94%E9%80%9A";//这个utf-8编码
String ss=URLDecoder.decode(str,"UTF-8");
System.out.println(ss);//输出的值:联通而在php里面这个怎么转换?
已经找了好多天了,一直没有找到,希望各位帮帮忙
echo rawurlencode(mb_convert_encoding($url1,'utf-8','gb2312'))."<br>";
//输出的值%E8%81%94%E9%80%9A,但是不知道怎么弄反过来
echo rawurlencode(mb_convert_encoding($url1,'utf-8','gb2312'))."<br>";
echo iconv('utf-8','gb2312',rawurldecode('%E8%81%94%E9%80%9A'));
function utf8_unicode($c) {
switch(strlen($c)) {
case 1:
return ord($c);
case 2:
$n = (ord($c[0]) & 0x3f) << 6;
$n += ord($c[1]) & 0x3f;
return $n;
case 3:
$n = (ord($c[0]) & 0x1f) << 12;
$n += (ord($c[1]) & 0x3f) << 6;
$n += ord($c[2]) & 0x3f;
return $n;
case 4:
$n = (ord($c[0]) & 0x0f) << 18;
$n += (ord($c[1]) & 0x3f) << 12;
$n += (ord($c[2]) & 0x3f) << 6;
$n += ord($c[3]) & 0x3f;
return $n;
}
}//gb2312转换为unicode
function gb2un($g)//传入gb2312字符串返回unicode码
{
preg_match_all("/[\x80-\xff]?./",$g,$ar);
$str = "";
foreach($ar[0] as $v)
{
$str = $str."&#".utf8_unicode(iconv("gb2312","utf-8",$v)).";";
}
return $str;
}
//unicode ---> gb2312
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/u",$str,$r);
$ar = $r[0];
//print_r($ar);
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u")
$ar[$k] = iconv("ucs-2","gb2312",pack("h4",substr($v,-4)));
elseif(substr($v,0,3) == "&#x")
$ar[$k] = iconv("ucs-2","gb2312",pack("h4",substr($v,3,-1)));
elseif(substr($v,0,2) == "&#") {
//echo substr($v,2,-1)."<br>";
$ar[$k] = iconv("ucs-2","gb2312",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}//unicode转换为gb2312
function un2gb($y)//传入unicode码返回gb2312
{
return unescape($y);
}我也是找的,呵呵
大家一起学习
$str2=iconv("UTF-8","GBK",rawurldecode(iconv("GBK","UTF-8",$url)));
弄出来了,谢谢大家帮忙,最后还要转换成gbk的