在我关于魔兽世界神话地下城的应用程序中,我必须对 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 的 URLEncoder如 URLEncoder.encode("Børomìr", "UTF-8");
关于java - 关于java中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590488/