gpt4 book ai didi

java - URL java 中的特殊字符不起作用

转载 作者:行者123 更新时间:2023-12-02 02:24:41 27 4
gpt4 key购买 nike

我正在制作一个从英雄联盟 API 获取数据的程序,它会分析您当前的游戏并向您显示对手的姓名、排名等信息。但我有一个问题,因为要获得某人的排名,我需要访问带有他的昵称的特定网址。问题是,有些玩家将诸如 å、à、è、ö 之类的字符放在他们的昵称中,当这种情况发生时,我的程序就会停止工作。我将向您展示我用来执行此操作的部分代码:

getSummonerID2 = new JSONObject(IOUtils.toString(newURL("https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/"+ newPlayerNick[i] + "?api_key=" + APIKEY), Charset.forName("UTF-8")));

这是它抛出的错误:java.io.IOException:服务器返回 HTTP 响应代码:400 对于 URL:https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/JegFårDetDårligt?api_key= (我的 key ,抱歉,无法显示)

我以前就遇到过空格问题,因为看起来你甚至不能在网址中添加空格,所以我解决这个问题的方法是:

newPlayerNick[i] = playerNick[i].replaceAll("\\s+","_");

这基本上用 _ 替换每个空格,所以它工作得很好,但我不能用普通的“a”替换“å”,因为它们是不同的字符。

那么,你知道有什么解决办法吗?非常感谢你们。

最佳答案

您可以尝试对特殊字符进行 URL 编码:

URLEncoder.encode("This string has å à è ö and spaces","UTF-8")

输出如下:

This+string+has+%C3%A5+%C3%A0+%C3%A8+%C3%B6+and+spaces

您可以尝试此网址看看是否有效:

https://www.google.com.hk/search?q=This+string+has+%C3%A5+%C3%A0+%C3%A8+%C3%B6+and+spaces

可以看到这是一个google链接,并且传递了关键字

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com