「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

Javaで文字コード(UTF-8 / Shift_JIS)を変換したい場面は、業務システムやバッチ処理で非常によくあります。
特に以下のようなケースでは、正しい変換方法を知らないと文字化けが発生します。

  • CSV・テキストファイルの入出力

  • 他システム(Windows系)とのファイル連携

  • Shift_JIS前提の外部ツール・帳票連携

  • HULFTやFTP転送後の文字化け対応

この記事では、JavaでUTF-8とShift_JISを正しく変換する方法を、実例付きで分かりやすく解説します。

文字コードUTF-8 Shift_JISを変換


Javaにおける文字コード変換の基本

Javaでは、文字コード変換を行う際に Stringbyte[] の相互変換を行います。

この2つが基本です。


文字コード名(正式名称)

表記Javaで指定する名前
UTF-8UTF-8
Shift_JISShift_JIS または "SJIS"

※ Javaでは "Shift_JIS" が最も安全です。


UTF-8 → Shift_JIS に変換する方法

文字列をShift_JISとして扱いたい場合 

注意
この方法は「表示用変換」には使えますが、
ファイル出力用途では非推奨です。


正しい方法:文字コードを指定してファイル出力する

UTF-8の文字列をShift_JISでファイルに書き込む(推奨)

この方法が最も安全で実務向けです。


Shift_JIS → UTF-8 に変換する方法

Shift_JISファイルを読み込み、UTF-8文字列にする

Java内部の String常にUTF-16 のため、
正しく読み込めばUTF-8として扱えます。


byte配列を直接変換する例(API連携など)


よくある文字化けの原因

原因①:読み込みと書き込みの文字コードが違う

書き込み:Shift_JIS
読み込み:UTF-8

→ ほぼ確実に文字化けします。


原因②:OS依存のデフォルト文字コード

OSのデフォルト(WindowsはSJIS)が使われるため危険です。

必ず文字コードを明示する


Java 11以降なら StandardCharsets を使う(推奨)

Shift_JISは以下で指定します。


UTF-8 / Shift_JIS 変換 まとめ

処理内容推奨方法
文字列変換new String(byte[], charset)
ファイル出力OutputStreamWriter
ファイル入力InputStreamReader
文字化け防止文字コードを必ず明示

実務での結論

  • String変換より「入出力時の文字コード指定」が最重要

  • Java内部のStringは気にしなくてOK

  • 外部ファイル・連携点だけ厳密に管理する

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x