TOTOP
20D
V2EX  ›  问与答

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

  •  
  •   TOTOP · Jul 25, 2016 · 1107 views
    This topic created in 3579 days ago, the information mentioned may be changed or developed.
    <?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

    请大家帮帮我看一下
    2 replies    2016-07-25 20:21:34 +08:00
    TOTOP
        1
    TOTOP  
    OP
       Jul 25, 2016
    -。- 大神们 帮我瞧瞧
    imn1
        2
    imn1  
       Jul 25, 2016
    我一下也说不上什么理论,但 url 不能单纯以字符集编码理解的,不了解的话不要随便用,我一向都避免直接用 urlencode 处理多字节字符
    找到一个说明 http://graphemica.com/%C6%BD 你参考一下,就是“ƽ”这个字符的编码, URL 编码就是%C6%BD
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   944 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 21:14 · PVG 05:14 · LAX 14:14 · JFK 17:14
    ♥ Do have faith in what you're doing.