← ハシトシステム トップ English ツール ブログ
入力・設定
結果

固定長ファイルの扱いについての説明

なぜ「文字数」ではなく「バイト数」で切るのか

固定長ファイルは、汎用機や金融機関のフォーマットのように、各項目の長さをバイト数で定めているものがほとんどです。全角文字は Shift_JIS では2バイト、UTF-8 では3バイトを占めるため、文字数で切ると同じデータでも列がずれます。このツールは選んだ文字コードの規則でバイト数を数えて切り出します。

Shift_JIS と UTF-8 でバイト数がどう変わるか

Shift_JIS では ASCII と半角カナが1バイト、ひらがな・漢字・全角記号が2バイトです。UTF-8 では ASCII が1バイト、ひらがな・漢字・半角カナがいずれも3バイトになります。同じ「山田太郎」でも Shift_JIS で8バイト、UTF-8 で12バイトです。元データが Shift_JIS で作られた固定長なら Shift_JIS を選んでください。

行ごとのバイト数チェック

固定長ファイルの取り込みで最も多い失敗は、1行の長さが定義と合っていないことです。このツールは各行の実バイト数と、入力したバイト数の合計を比べ、過不足のある行だけを行番号つきで表示します。切り出しは止めずに続けるので、どこからずれ始めたかを結果と見比べられます。

文字の途中では切らない

指定したバイト数の境界が全角文字の途中に来た場合、その文字は次の項目に送ります。文字を壊した半端なバイトを出力しないためで、その行はバイト数チェックにずれとして表示されます。

扱える文字の範囲

バイト数の計算は Shift_JIS の一般的な範囲(ASCII・半角カナが1バイト、それ以外が2バイト)を規則として使います。Shift_JIS で表現できない文字を含むデータでは、実ファイルのバイト数と一致しないことがあります。

よくある質問(FAQ)

CSV から固定長へ戻すこともできますか?

はい。「CSV → 固定長」を選ぶと、各項目を指定バイト数まで詰めて連結します。左寄せ・空白詰めと、右寄せ・0詰め(金額欄などで使う形)を選べます。指定より長い項目は切り詰め、その行を警告として表示します。

入力したデータは外部に送信されますか?

いいえ。切り出し・変換・ダウンロードまで、すべての処理はお使いのブラウザ内で完結します。入力内容がサーバーへ送信されることはありません。

項目の中にカンマが入っていても大丈夫ですか?

はい。CSV へ出力するとき、カンマ・二重引用符・改行を含む項目は二重引用符で囲み、内部の二重引用符は2つ重ねます。タブ区切りを選んだ場合は項目内のタブを空白に置き換えます。

先頭の0や右の空白は消せますか?

はい。「余白の扱い」で、右の空白を削除・両端の空白を削除・先頭の0を削除・そのまま、の4つから選べます。伝票番号のような0埋めの項目は「先頭の0を削除」が使えます。