UTFで日本語を扱う上で避けて通れない、JavaにおけるSJIS⇔UTF文字コード変換時のまとめ。
##SJIS->UTFへの文字コード変換で字体が変わる
Javaのコンバーターでは、MS932とCP943Cで変換結果が異なります。
###Encode by MS932/Windows-31J(Windows 日本語)
###Encode by CP943C(IBM 拡張SJIS)
上表の通り変換結果が異なる。
Unicodeの変換仕様に従うと、見た目が異なるCP943Cの変換結果が正しい
だがWindowsでの見た目的には、MS932が正しい。
##対処法
一般的なシステムでJavaで文字コード変換を行う場合は、MS932を利用するのがベターな対象方法。
JDBCドライバーでSJISのDBを検索する時も注意が必要。
特にDB2では、CP943Cベースの変換が行われるので、MS932ベースの変換結果を得たい時は何らかの対処が必要になる。これは別記事でまとめる。