Ste*_*fan 6 php firefox google-chrome diacritics urldecode
Chrome的转换这样的:aöüß到%C3%A4%C3%B6%C3%BC%C3%9F
但Firefox将其转换为这里这个奇怪的事情:a%F6%FC%DF
我似乎无法找到一种方法,Firefox的东西转换回原来的PHP.遗憾的是,Urldecode和rawurldecode不起作用.有谁知道如何处理?谢谢.
正如Tei已经猜到的那样:Chrome使用UTF-8(可能推荐)用于URL参数,而Firefox使用Latin-1.我不认为你可以控制这种行为.此外,这将很难处理,因为您几乎需要猜测所使用的编码.
这就是解码的工作原理(取决于浏览器,假设您在应用程序中使用UTF-8):
铬:
$text = urldecode($_GET['text']);
Run Code Online (Sandbox Code Playgroud)
火狐:
$text = utf8_encode(urldecode($_GET['text']));
Run Code Online (Sandbox Code Playgroud)
这可能是一种适用于大多数情况的解决方案:
function urldecode_utf8($text) {
$decoded = urldecode($text);
if (!mb_check_encoding($decoded, 'UTF-8')) {
$decoded = utf8_encode($decoded);
}
return $decoded;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2028 次 |
| 最近记录: |