因此问题很奇怪,因为它只在某些系统上发生。
如果你有这一行:
parse_url('/€?€#€')
在PHP版本7.0.4的本地系统上,它给出了以下结果:
array(3) {
["path"]=>
string(4) "/▒_▒"
["query"]=>
string(3) "▒_▒"
["fragment"]=>
string(3) "▒_▒"
}
这里经历了类似的事情:
https://www.functions-online.com/parse_url.html
输入$ url框:
/€?€#€
但是这里工作得很好,虽然PHP版本与我的机器相同: http://sandbox.onlinephpfunctions.com/
知道为什么会这样吗?
预期的解析网址结果应为:
array(3) {
["path"]=>
string(4) "/€"
["query"]=>
string(3) "€"
["fragment"]=>
string(3) "€"
}
编辑:
文件编码是UTF-8,PHP内部编码也是UTF-8,可以在服务器上设置的所有东西都是UTF-8。