java – 如何正确编码此URL

前端之家收集整理的这篇文章主要介绍了java – 如何正确编码此URL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用JSoup获取此URL

http://betatruebaonline.com/img/parte/330/CIGUEÑAL.JPG

即使使用编码,我也有例外.
我不明白为什么编码错了.它回来了

07001

而是正确的

07002

我怎么解决这个问题?
谢谢.

private static void GetUrl()
{
    try
    {
        String url = "http://betatruebaonline.com/img/parte/330/";
        String encoded = URLEncoder.encode("CIGUEÑAL.JPG","UTF-8");
        Response img = Jsoup
                            .connect(url + encoded)
                            .ignoreContentType(true)
                            .execute();

        System.out.println(url);
        System.out.println("PASSED");
    }
    catch(Exception e)
    {
        System.out.println("Error getting url");
        System.out.println(e.getMessage());
    }
}

解决方法

编码没有错,这里的问题是复合unicode&预组合的字符“Ñ”可以用两种方式显示,它们看起来相同但真的不同
precomposed unicode: Ñ           -> %C3%91
composite unicode: N and ~       -> N%CC%83

我强调两个都是正确的,这取决于你想要的unicode类型:

String normalize = Normalizer.normalize("Ñ",Normalizer.Form.NFD);
System.out.println(URLEncoder.encode("Ñ","UTF-8")); //%C3%91
System.out.println(URLEncoder.encode(normalize,"UTF-8")); //N%CC%83

猜你在找的Java相关文章