特定中文urlencode的问题 今天遇到一个问题。gbk编码的字“扙",urlencode后对应的是%92E,但是再用decode后却不能还原为“扙”,一个中文字符在urlencode后不都是两个%xx%xx吗?这里怎么是一个%xxx。对应的用java测试后encode结果是“%92%45” 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我这里测试是正常的,解码用urldecode 是gbk编码吗? $s = '扙';echo $t = urlencode($s);//%92Eecho urldecode($t);//扙编码解码都未有问题E 的十六进制内码是 45, 而 扙 的第二字节十六进制内码也是 45。所以 E 和 %45 是等效的,如果是你自己在写 url 解码程序,那么就要注意到这个事实 目前我是用java的URLDecoder.decode("xxxxx","GBK");去反解,这样解出来的就是乱码。 那是 java 认为 RFC 1738 标准太老了,自己随心所欲了应对这种情况你可以写个自己的url编码函数function myurlencode($str) { return '%' . join('%', array_map('dechex', pack('C*', $str));} 如何用php实现图片上传且保存到数据库,又如何将上传得图片在网页中显示呢? php的memory_limit最大值是多少? fck的默认值为什么设置不上呢 大家帮忙看一下这个正则想不明白 php使用javabridge调用java出现错误 小菜提问:开发环境的配置。 php有没有和asp中的语句rs.movenext的语句 discuz的登录机制,如何判断用户登录 php的页面静态化感觉有点局限。 mail函数问题: tp5中sql语句分组的问题 关于 jQuery 的 edatagrid 分页问题
echo $t = urlencode($s);//%92E
echo urldecode($t);//扙编码解码都未有问题
E 的十六进制内码是 45, 而 扙 的第二字节十六进制内码也是 45。
所以 E 和 %45 是等效的,如果是你自己在写 url 解码程序,那么就要注意到这个事实
目前我是用java的URLDecoder.decode("xxxxx","GBK");去反解,这样解出来的就是乱码。
应对这种情况你可以写个自己的url编码函数
function myurlencode($str) {
return '%' . join('%', array_map('dechex', pack('C*', $str));
}