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を変更するだけで失われた文字を復元することはできません。
記録には『作成設定、ファイル属性、転送時の変換有無、表示時の指定、期待する文字、実際の表示』を残します。内容が読めても、先頭ゼロ・日付の自動変換・引用符や改行の解釈は別に確認してください。