java - 关于java中的特殊字符

标签 java android text special-characters

在我关于魔兽世界神话地下城的应用程序中,我必须对 raiderio 公共(public) 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 的 URLEncoderURLEncoder.encode("Børomìr", "UTF-8");

关于java - 关于java中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590488/

相关文章:

java - 用于在 Java 中播放的硬件 MIDI 输出?

Android - Facebook SDK 3 - 如何在没有 LoginButton 的情况下以编程方式登录

html - 从 HTML 文本输入中删除插入符号

javascript - 在 svg 中的文本上方绘制路径

android - 如何修复 Kotlin 中的并发修改异常

javascript - 我如何允许用户将文件上传到我的站点,对其进行编辑并将其保存回来

java - 嵌套循环运行时间复杂度分析

java - 如何在方法内部更改传递的 Lambda 表达式的值

java - 使用 Netbeans IDE 安装适用于 Java 的 activejdbc

android - 回收站 View 项目中的文本超出屏幕范围