【问题标题】:About special characters in java关于java中的特殊字符
【发布时间】:2018-05-29 18:12:33
【问题描述】:

在我关于魔兽世界神话地牢的应用程序中,我必须对 raiderio 公共 API 进行一些查询。当玩家这样命名时,我遇到了一个大问题:

https://raider.io/api/v1/characters/profile?region=US&realm=https://raider.io/characters/us/zuljin/Børomìr&name=&fields=mythic_plus_best_runs%3Aall

this name : Børomìr

在 API 中,此查询不起作用,因为它管理这样的特殊字符:

https://raider.io/api/v1/characters/profile?region=us&realm=zuljin&name=B%C3%B8rom%C3%ACr&fields=mythic_plus_best_runs%3Aall

becomes this : B%C3%B8rom%C3%ACr

地点:

ø 变为 %C3%B8

ì 变为 %C3%AC

在java中我需要哪个工具来生成这个转换?

这里是 URL 请求代码:

            String body = "";
            URL url = new URL("https://raider.io/api/v1/characters/profile?region="+region.toString()+"&realm="+realm+"&name="+name+"&fields=mythic_plus_best_runs%3Aall");
            System.out.println(url.toString());
            URLConnection uc = url.openConnection();
            uc.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
            InputStream in = uc.getInputStream();
            String encoding = uc.getContentEncoding();
            encoding = encoding == null ? "UTF-8"
                    // "windows-1251"
                    // "Cp1251"
                    : encoding;
            body = IOUtils.toString(in, encoding);

【问题讨论】:

    标签: java android text special-characters


    【解决方案1】:

    你可以使用 Java 的 URLEncoderURLEncoder.encode("Børomìr", "UTF-8"); 一样

    【讨论】:

      【解决方案2】:

      这就是所谓的percent encoding,是在 URL 中使用的。有许多工具可以让您像this one 一样对其进行解码。特别是在java中,它有一个URL encoder

      【讨论】:

        猜你喜欢
        • 2012-09-08
        • 1970-01-01
        • 2019-02-09
        • 2015-05-24
        • 2014-09-25
        • 2013-06-05
        • 1970-01-01
        • 2012-11-21
        相关资源
        最近更新 更多