AS400の文字化け・CCSID確認ポイント|CSV・FTP・IFS・ODBC/JDBCで日本語が崩れる時

AS400 / IBM i からCSVを出す、IFS(統合ファイルシステム)へファイルを置く、FTPで転送する、ODBC/JDBCで外部連携する時に、文字化けや全角文字の崩れが起きることがあります。原因は一つではなく、CCSID(文字コードを識別する番号)、ジョブCCSID、ファイルCCSID、FTP転送モード、PC側の文字コード、Excelの開き方が関係します。

最初に切り分けること

  • 5250画面では正しく見えるか
  • AS400上のファイル内容が正しいか
  • IFSへ出した時点で崩れているか
  • FTP転送後に崩れているか
  • Excelや外部システムで開いた時に崩れているか

CCSIDとジョブ環境を見る

文字化けでは、対象ファイルだけでなく、実行ジョブのCCSID、ユーザープロファイル、ジョブ記述、変換元と変換先の文字コードを確認します。AS400内では正しく見えても、IFSやPC側で別の文字コードとして扱われると崩れます。

外部接続では、ODBC/JDBC接続時のドライバー設定や、アプリ側のエンコーディング指定も関係します。接続全体の確認は AS400 ODBC/JDBC接続の確認ポイント を参照してください。

CSVとExcelで崩れる場合

CSVをExcelで直接開くと、PC側が想定と違う文字コードで解釈することがあります。AS400側の抽出方法、区切り文字、引用符、改行コード、BOMの有無、Excelへの取り込み方法を確認します。

データ抽出の入口は AS400データ抽出ガイド、ACS(IBM i Access Client Solutions)を使う場合は AS400のACS入門 を確認してください。

Excel用とシステム連携用の文字コードを分ける

UTF-8のBOM付き・BOMなしと、Windows-31J(CP932)などは別の形式です。Excel用にBOMを付けたファイルを、そのままBOM禁止の連携先へ渡すとは限りません。受渡先ごとに出力仕様を決めます。

用途 形式・開き方の確認 確認ポイント
Excelでダブルクリックして開く UTF-8 BOM付きが使える。既存の日本語コードなら作成側の指定とPC環境を照合 UTF-8 BOMなしはExcelが文字コード判定を外すことがあります。
Excelのデータ取り込みで開く UTF-8 BOMなしでも可 取り込み画面でUTF-8、Shift-JIS/932などを指定して確認します。
古い基幹連携・国内業務システムへ渡す 受渡仕様に書かれた文字コードを使用 半角カナ、外字、丸付き数字、機種依存文字の扱いも確認します。
Web/API/クラウド連携へ渡す 文字コードとBOMの可否をAPI/連携仕様で確認 相手仕様でBOM禁止のことがあるため、仕様書を優先します。

UTF-8のCSVをExcelで確認する場合、BOM付きなら通常の開き方が使えます。BOMなしの場合は[データ]から[テキスト/CSVから]の取り込みで文字コードと列型を確認します。画面構成はExcelの版により異なります。Microsoft公式の開き方を照合してください。エディタに表示された文字コード名は、自動判定の可能性があるため確定情報として扱いません。

文字コードは受渡先の仕様と、使用するExcelの取り込み方法で決めます。UTF-8のBOMを付ける場合も、他の取り込み先が許容するか確認します。システム連携用CSVは、Excelで開けるかどうかよりも相手システムの仕様を優先します。文字化け対応では、AS400側のCCSIDだけでなく、CSVを作る形式、転送方法、PC側で開く方法までセットで確認してください。

FTPやIFSで崩れる場合

文字化けしたファイルを何度も上書き変換せず、元データ、IFS出力、転送後を別々に保存して、初めて崩れた段階を探します。

FTP転送では、ASCII/BINARYの転送モード、改行コード、相手サーバー側の文字コード、IFS上のCCSIDが関係します。バイナリで送るべきファイルをASCII転送したり、変換が必要なテキストをバイナリで送ったりすると、文字化けや改行崩れが起きます。

IFSの基本は AS400のIFS入門、FTP転送の確認は AS400のFTP転送確認ポイント を確認してください。

対応前チェックリスト

  • どの時点で文字化けしているか確認したか
  • 元データ、出力ファイル、転送後ファイルを分けて確認したか
  • CCSID、FTP転送モード、PC側文字コードを確認したか
  • Excelで直接開くのか、データ取り込みを使うのか決めたか
  • 本番ファイルを変更せず、コピーで検証したか

AS400の文字化けは、原因箇所を分けずに直そうとすると遠回りになります。AS400内、IFS、FTP転送、PC、外部アプリのどこで崩れるかを順に確認すると、CCSIDや変換設定を安全に見直せます。

文字コードが特定できない時は原本を残す

エディタの自動判定は手掛かりであり、文字コードの確定ではありません。ASCII文字だけのサンプルではUTF-8と従来の日本語コードを見分けられないこともあります。作成側の仕様・出力設定・BOM・日本語を含むダミーサンプルを合わせて確認し、原本を再保存しないまま比較します。

Shift-JISとWindows-31J(CP932)は完全に同じ対応表ではありません。丸付き数字や機種依存文字などを含む場合は、『SJIS』という呼び名だけで済ませず、作成側と受取側の指定を照合します。元の文字が既に疑問符などへ置換されている場合、CCSIDを変更するだけで失われた文字を復元することはできません。

記録には『作成設定、ファイル属性、転送時の変換有無、表示時の指定、期待する文字、実際の表示』を残します。内容が読めても、先頭ゼロ・日付の自動変換・引用符や改行の解釈は別に確認してください。