Apache Common UrlValidator不支持unicode.可替代的吗? [英] Apache Common UrlValidator does not support unicode. alernative is avaliable?
本文介绍了Apache Common UrlValidator不支持unicode.可替代的吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试进行网址验证.但UrlValidator是不支持unicode.这是代码
i try to url validation. but UrlValidator is does not support unicode. here is code
public static boolean isValidHttpUrl(String url) {
String[] schemes = {"http", "https"};
UrlValidator urlValidator = new UrlValidator(schemes);
if (urlValidator.isValid(url)) {
System.out.println("url is valid");
return true;
}
System.out.println("url is invalid");
return false;
}
String url = "ftp://hi.com";
boolean isValid = isValidHttpUrl(url);
assertFalse(isValid);
url = "http:// hi.com";
isValid = isValidHttpUrl(url);
assertFalse(isValid);
url = "http://hi.com";
isValid = isValidHttpUrl(url);
assertTrue(isValid);
// this is problem... it's not true...
url = "http://안녕.com";
isValid = isValidHttpUrl(url);
assertTrue(isValid);
您知道任何其他支持URL验证器的unicode吗?
do you know any alternative url validator support unicode?
我添加了一些情况... http://seapy_hi.com 无效.为什么?下划线是有效域,为什么无效?
i add some case... http://seapy_hi.com is invalid. why? underbar is valid domain why invalid?
推荐答案
它不支持IDN.您需要先将URL转换为Punycode.试试这个,
It doesn't support IDN. You need to convert URL to Punycode first. Try this,
isValid = isValidHttpUrl(IDN.toASCII(url));
这篇关于Apache Common UrlValidator不支持unicode.可替代的吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文