Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
URL java中的特殊字符不起作用_Java_Url_Special Characters_Encode_Http Status Code 400 - Fatal编程技术网

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

URL java中的特殊字符不起作用,java,url,special-characters,encode,http-status-code-400,Java,Url,Special Characters,Encode,Http Status Code 400,我正在制作一个程序,从传奇联盟api获取数据,它分析你当前的游戏,并显示你的对手的名字,等级和东西。但我有一个问题,因为要获得某人的排名,我需要访问一个特定的url,其中包含他的尼克。问题是,一些玩家在他们的刻痕中放置了像å、á、è、ö之类的角色,当这种情况发生时,我的程序就会停止工作。我将向您展示我使用的部分代码: getSummonerID2 = new JSONObject(IOUtils.toString(newURL("https://euw1.api.riotgames.com/lo

我正在制作一个程序,从传奇联盟api获取数据,它分析你当前的游戏,并显示你的对手的名字,等级和东西。但我有一个问题,因为要获得某人的排名,我需要访问一个特定的url,其中包含他的尼克。问题是,一些玩家在他们的刻痕中放置了像å、á、è、ö之类的角色,当这种情况发生时,我的程序就会停止工作。我将向您展示我使用的部分代码:

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:服务器返回了URL的HTTP响应代码:400:(我的密钥,无法显示sry)

我以前遇到过空格的问题,因为看起来你甚至不能在url中放置空格,所以我所做的是:

newPlayerNick[i] = playerNick[i].replaceAll("\\s+","_");
这基本上用aå替换了每个空格,所以它工作得很好,但我不能用普通的a替换“å”,因为它们是不同的字符


那么,你知道解决这个问题的办法吗?非常感谢各位。

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

URLEncoder.encode("This string has å à è ö and spaces","UTF-8")
输出如下所示:

This+string+has+%C3%A5+%C3%A0+%C3%A8+%C3%B6+and+spaces
您可以尝试此url以查看其是否有效:


您可以看到它是一个google链接,关键字已传递

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

URLEncoder.encode("This string has å à è ö and spaces","UTF-8")
输出如下所示:

This+string+has+%C3%A5+%C3%A0+%C3%A8+%C3%B6+and+spaces
您可以尝试此url以查看其是否有效:


您可以看到它是一个google链接,关键字被传递

URL允许包含ASCII子集中的字符。URL中的任何非ASCII字符都是非标准字符。一些web服务器可能偶然支持它(我相信Github偶尔会在URL、IIRC中抛出一个错误的复选标记),一些web客户端可能允许它,但它是非标准的。你试过URLEncoder或URLEdecoder吗?您可以看到一个很好的示例URL允许包含ASCII子集中的字符。URL中的任何非ASCII字符都是非标准字符。一些web服务器可能偶然支持它(我相信Github偶尔会在URL、IIRC中抛出一个错误的复选标记),一些web客户端可能允许它,但它是非标准的。你试过URLEncoder或URLEdecoder吗?你可以看到一个很好的例子,很乐意帮忙。:)很乐意帮忙。:)