怎么把“刘德华”转换为 “%C1%F5%B5%C2%BB%AA”

FROM 2009-11-19 12:10:33
RT。。。初学,翻了好多资料没找到,用什么函数?
...全文
79 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiachao2008 2011-11-06
  • 打赏
  • 举报
回复
正在找这个*
hongtenzone510 2011-11-06
  • 打赏
  • 举报
回复
正在找这个*
ProgrammerNO1 2009-11-19
  • 打赏
  • 举报
回复
学习~~~
foolbirdflyfirst 2009-11-19
  • 打赏
  • 举报
回复
如果数据是GBK的,就直接用urlencode,如果不是,先iconv转再urlencode.
$a = '刘德华';
//$a = iconv("utf-8","GBK",$a);//这个表示utf-8编码转gbk编码
echo urlencode($a);
FROM 2009-11-19
  • 打赏
  • 举报
回复
不对。

输入“刘德华”出来的是 %u%u%uc975%u 而不是 %C1%F5%B5%C2%BB%AA
残剑无弦 2009-11-19
  • 打赏
  • 举报
回复
弄错了 是这个
function escape($str) {
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
return join("",$ar);
}
残剑无弦 2009-11-19
  • 打赏
  • 举报
回复
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧