我正在试验filter_input
和filter_var
,我目前正在尝试使用FILTER_SANITIZE_URL
清理网址。
测试程序从GET变量中获取输入,该变量由URL组成(例如foo.com/bar.php?a=http://www.domain.se
)。只要我不使用瑞典域名,它就可以正常工作。例如:(foo.com/bar.php?a=http://www.äta.se
)被清理到a = http://www.ta.se
,其中显然不相同。
答案 0 :(得分:2)
具有特殊字符的域在技术上不会使用非ASCII字符传输(如您的情况中的ä),它们是punycode编码的。调用程序应该相应地编码它的URL。
请参阅:
http://en.wikipedia.org/wiki/Internationalized_domain_name
http://en.wikipedia.org/wiki/Punycode