Hatena::ブログ(Diary)

何言語でも話したいPGの開発日記

※「2010年11月25日

JAVAで文字コード変換

| 17:01

文字列から文字列で変換するのはよくある話

String sjis_str = "SJISの文字列";
byte[] sjis_bytes = sjis_str.getBytes( "Windows-31J" );
String utf8_str = new String( sjis_bytes, "UTF-8" );

って。


でも、できないーと思っていたら、

sjis_strにUTF-8が入っていたんだ。


まぁ何でこんなことになったかって言うと、

問題はInputStreamReaderだった。


WEBページをゲットする際に、

InputStream

InputStreamReader

BufferedReeader

BufferedReeader#readLine()

で値をとることが多い。


InputStreamReaderのコンストラクタには、

文字コードを指定する奴があって、

その時点でWindows-31Jを指定してやって、

それをUTF-8に変換しなきゃいけないってね。


また一つ勉強になった。