Apache Common UrlValidator不支持unicode.可替代的吗? [英] Apache Common UrlValidator does not support unicode. alernative is avaliable?

查看:72
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆