Help us understand the problem. What is going on with this article?

Java UTF-8への文字コード変換問題まとめ(全角 波ダッシュ)

More than 3 years have passed since last update.

UTFで日本語を扱う上で避けて通れない、JavaにおけるSJIS⇔UTF文字コード変換時のまとめ。

SJIS->UTFへの文字コード変換で字体が変わる

Javaのコンバーターでは、MS932とCP943Cで変換結果が異なります。

Encode by MS932/Windows-31J(Windows 日本語)

MS932.png

Encode by CP943C(IBM 拡張SJIS)

Cp943C.png

上表の通り変換結果が異なる。

Unicodeの変換仕様に従うと、見た目が異なるCP943Cの変換結果が正しい
だがWindowsでの見た目的には、MS932が正しい。

対処法

一般的なシステムでJavaで文字コード変換を行う場合は、MS932を利用するのがベターな対象方法。
JDBCドライバーでSJISのDBを検索する時も注意が必要。
特にDB2では、CP943Cベースの変換が行われるので、MS932ベースの変換結果を得たい時は何らかの対処が必要になる。これは別記事でまとめる。

yo24
私の記事は所属する会社を代表するものではなく個人の見解です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away