Javaで日本語を含むURLをASCIIだけのURLに変換する方法

やりたいこと

 Java で、日本語を含む URL を ASCII だけの URL に変換したい場合がある。 例えば、RSS などを読み込んだら RSS に記載された URL が日本語を含んでいたなんてことが良くある。 その 日本語を含む URL に対して単純に URL エンコードをかましてしまうと、コロン(:)やスラッシュなどの URL として正しい記号までエンコードしてしまう。

解決方法

 java.net パッケージの URI クラスと、そのクラスのメソッド toASCIIString() を使うと解決できる。 toASCIIString() メソッドで ASCII 文字だけの文字列を返却してくれる。

String url = "http://hogemoge.com/あいうえお/";
url = new URI(url).toASCIIString();

 気合いを入れて自分で変換メソッドを作ってしまわないようにしたいところだ。

Java環境構築へ戻る

著者 : OSCA

OSCA

 初級WEBエンジニアです。最近は Android, iOS, WEBアプリの作成に力を入れています。 個人として何か一つでも世の中の多くの人に使ってもらえるアプリを作ろうと日々奮闘中です。