The FILTER_VALIDATE_URL filter seems to have some trouble validating non-ASCII URLs:
FILTER_VALIDATE_URL
var_dump(filter_var(\'http://pt.wikipedia.org/wiki/\', FILT
The following code uses filter_var but encode non ascii chars before calling it. Hope this helps someone.