【发布时间】:2014-12-18 21:45:54
【问题描述】:
我从不同浏览器中的 url 得到奇怪的结果。
我有这个网址
example.com&nam=Oprava skúškovej písomky 2012-2013.png
此网址在 Safari 中被解释:
example.com&nam=Oprava%20sk%C3%BA%C5%A1kovej%20p%C3%ADsomky%202012-2013.png
与 Chrome 中的 url 不同:
example.com&nam=Oprava%20sku%CC%81s%CC%8Ckovej%20pi%CC%81somky%202012-2013.png
为什么会这样?因为 Safari 链接对图片有效,而 Chrome 链接无效。
好奇的工作人员要结束的是:
echo "<br>".var_dump($_GET['nam']);
echo "<br>".var_dump("Oprava skúškovej písomky 2012-2013.png");
结果
string(41) "Oprava skúškovej písomky 2012-2013.png"
string(44) "Oprava skúškovej písomky 2012-2013.png"
这些字符串看起来一样,但它们是不同的。我怎样才能避免这种情况?我想要两个相同的字符串。
【问题讨论】:
-
这是因为字符串转义。您最好不要在文件名中使用字母数字字母,也不要使用空格...
-
是否有相同的字符串转义。
-
ú等可以在 UTF-8 中以不同的方式编码。 (基本上直接使用字符ú,或者简单的u与变音符号组合。)“我想要两个相同的字符串” – 然后预先正确地对值进行 URL 编码(在 UTF- 8 编码形式),而不是让浏览器来做。
标签: php google-chrome url safari url-encoding