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

投稿者 : OSCA

関東地方の美しい夜景を観にいこう。 夜景サイト「夜景散歩」で夜景スポットを検索

やりたいこと

 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

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。
個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca