求教一个编码问题 php rawurlencode iconv 相关

2016-07-25 16:23:23 +08:00
 DreamCMS
<?php
//1
echo rawurlencode(iconv("utf8", "gbk", '黄金口岸.jpg')); //输出%BB%C6%BD%F0%BF%DA%B0%B6.jpg
echo '<br/>';

//2
echo iconv("gbk", "utf8",rawurldecode('%BBƽ%F0%BFڰ%B6.jpg')); //黄金口岸.jpg
echo '<br/>';

//3
echo '%BBƽ%F0%BFڰ%B6.jpg';
?>

因为上传使用到了中文文件名,上传到底图片大量类似%BBƽ%F0%BFڰ%B6.jpg 这样半乱码图片文件名

现在因移动后在新服务器( 1 )输出文件现在%BB%C6%BD%F0%BF%DA%B0%B6.jpg 无法匹配到服务器文件夹%BBƽ%F0%BFڰ%B6.jpg 图片,但偶然测试得到( 2 )%BBƽ%F0%BFڰ%B6.jpg 反解析得到黄金口岸.jpg 这个图片中文名。

( 3 )'黄金口岸.jpg' -》 ' %BBƽ%F0%BFڰ%B6.jpg'
如何转移得到?本来服务器使用 rawurlencode(iconv("utf8", "gbk", '黄金口岸.jpg'));可以得到%BBƽ%F0%BFڰ%B6.jpg

请大家帮帮我看一下
753 次点击
所在节点    问与答
2 条回复
DreamCMS
2016-07-25 16:25:46 +08:00
-。- 大神们 帮我瞧瞧
imn1
2016-07-25 20:21:34 +08:00
我一下也说不上什么理论,但 url 不能单纯以字符集编码理解的,不了解的话不要随便用,我一向都避免直接用 urlencode 处理多字节字符
找到一个说明 http://graphemica.com/%C6%BD 你参考一下,就是“ƽ”这个字符的编码, URL 编码就是%C6%BD

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/294795

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX