私は凡例APIのリーグからデータを取得するプログラムを作成しています。これはあなたの現在のゲームを分析し、あなたの名前、ランク、物を表示します。しかし、私は問題を抱えています。なぜなら、誰かの階級を取得するためには、彼のニックで特定のURLに移動する必要があるからです。問題は、一部のプレイヤーがå、à、è、ö、またはそのような文字を自分の刻み目に入れてしまい、そのときにプログラムが機能しなくなることです。私はあなたにそれを行うために使用してイムコードの一部が表示されます:URL javaの特殊文字は動作しません
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の400:https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/JegFårDetDårligt?api_key=(私のキーサーバーは、HTTPレスポンスコードを返し、)それはSRY
を示しカントそれはあなたもURLにスペースを入れて傾けるように見えるので、スペースを前に、私に起こったので、私はそれがだった解決するためにやった事:
newPlayerNick[i] = playerNick[i].replaceAll("\\s+","_");
こと基本的にすべてのスペースを_で置き換えるので、完璧に動作しますyは、しかし、私は "å"を通常の "a"に置き換えることはできません。
だから、これはどのような解決策がありますか?大変ありがとうございました。
URLには、ASCIIのサブセットから文字を含むことができます。 URL内のASCII以外の文字はすべて標準ではありません。いくつかのWebサーバは偶然それをサポートしているかもしれません(私はGithubがURL、IIRCに時折迷惑なチェックマークを投げると信じています)、そしていくつかのWebクライアントはそれを許可するかもしれませんが、それは非標準です。 [関連](https://stackoverflow.com/questions/6871404/can-a-path-in-a-uri-contain-unicode) –
そのために_URLEncoder_または_URLDecoder_を試しましたか? [ここをクリック](https://dzone.com/articles/url-encoding-and-decoding-using-java)あなたは良い例を見ることができます – jfun