JAVAで文字コード変換
文字列から文字列で変換するのはよくある話
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に変換しなきゃいけないってね。
また一つ勉強になった。