Agent Skills by ALSEL
ALSEL独自Anthropic ClaudeEC・マーケティング品質スコア 100/100

csv-encoding-sjis-validator

EC用のCSVファイルが各モールの要求する文字コード(Shift_JIS/UTF-8/BOM有無)と改行コード(CRLF/LF)に適合しているか、文字化け・先頭0落ち・カンマやダブルクォート崩れ・Shift_JIS範囲外文字(機種依存・絵文字・①②/㍑等)が混入していないかを検証するスキル。「CSVが文字化け」「Shift_JISエラー」「UTF-8で開けない」「BOM付き/無し」「先頭0が消える」「Excelで開いて壊れた」「機種依存文字が混入」「楽天CSVのエンコード」「絵文字が含まれている」「改行コードが違う」など、ECモール向けCSVの文字コード・改行・形式不備の検出と修正で使う。楽天(Shift_JIS/CRLF)・Amazon(UTF-8/タブ区切り)・Yahoo(UTF-8/CRLF)・ネクストエンジン・クロスモール対応。※モール間のCSV列マッピングは別スキル `mall-to-mall-csv-mapper`、Amazonフラットファイルの属性エラーは `amazon-flat-file-validator-jp`、JANのチェックデジットは `jan-code-checker`。 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。

SKILL.md 本文

CSV文字コード・形式バリデータ

概要

各ECモールのCSV要件(文字コード・改行コード・区切り文字・引用符・BOM有無)に適合しているかを検証し、文字化け・先頭0落ち・Shift_JIS範囲外文字(機種依存文字・絵文字・古い丸数字・特殊記号)・Excel保存時の破壊・カンマ/改行のエスケープ崩れを検出する。

★最重要原則

「Excelで開いて保存」が最大の事故源。 Excelは独自にエンコード変換・先頭0除去・日付自動変換・カンマ追加を行う。CSVを編集するならテキストエディタ or 専用ツールを原則とし、Excelで開いた時点で「変更されている可能性」を疑う。さらに、楽天はShift_JIS/CRLF、Amazonはタブ区切りUTF-8、YahooはUTF-8/CRLF、と要件が違うため、モールごとの要件を最初に確定してから検証する。

知識ベース

詳細は references/ を参照:

  • 文字コード(Shift_JIS/CP932/UTF-8/UTF-8 BOM)の自動判定とエッジケース:references/encoding-detection.md
  • Shift_JIS範囲外文字(機種依存・古い丸数字・絵文字・特殊記号)の一覧:references/sjis-out-of-range.md
  • Excelで壊れるパターン(先頭0/指数表記/日付化/JANコード破損/文字コード勝手変換):references/excel-traps.md
  • カンマ・ダブルクォート・改行のエスケープ崩れ:references/delimiter-quote-issues.md
  • 実例集(楽天/Amazon/Yahoo/ネクストエンジン):references/examples.md

要点(本ファイルに留める):

モール別CSV要件

モール文字コード改行区切り引用符
楽天RMSShift_JIS(CP932)CRLFカンマダブルクォート
AmazonUTF-8LFタブ(タブ区切りのため引用符不要)
Yahoo!ショッピングUTF-8(BOM任意)CRLFカンマダブルクォート
ShopifyUTF-8 BOM付推奨LF/CRLFカンマダブルクォート
ネクストエンジンShift_JIS or UTF-8CRLFカンマダブルクォート
クロスモールShift_JIS or UTF-8CRLFカンマダブルクォート
BASEUTF-8LF/CRLFカンマダブルクォート
makeshopShift_JISCRLFカンマダブルクォート

Shift_JIS(CP932)範囲外で頻出する文字

  • 機種依存:① 〜 ⑳、㍻・㍼・㍽・㍾、㈱・㈲、Ⅰ〜Ⅻ、㍑・㎏・㎝(CP932は一部含むがJIS X 0208外)
  • 絵文字:絶対NG。U+1F系・U+2600系の各種
  • 環境依存:髙(はしごだか)/﨑(たちさき)/彅/瀨(旧字体)の一部
  • 全角チルダ/波ダッシュ問題:~(U+FF5E)と〜(U+301C)の混在

Excel保存時の典型破壊

現象原因対策
JAN 49012345678944.901234567894E+12指数表記化列を「テキスト」型でインポート
商品コード 00123123先頭0除去同上
2024-01-15 → 日付シリアル値日付自動認識同上
1-2-3 → 「2001/2/3」日付自動認識単一引用符前置 or テキスト型
文字化けエンコード勝手変換Power Query/テキストエディタ使用

カンマ・引用符・改行のエスケープ

  • カンマを含む値はダブルクォート囲み:"商品名, おまけ付き"
  • ダブルクォート自身は2連で:"商品""限定""版"
  • 値内改行はLF/CRLFどちらにせよ引用符内で許容(モールにより制限あり)

処理フロー

Step 1:CSVのバイト列レベル検査

入力されたCSVファイル(テキスト or バイナリ)の冒頭を検査:

  • BOM(EF BB BF = UTF-8 BOM、FF FE = UTF-16 LE等)の有無
  • 改行コード(0D 0A=CRLF、0A=LF、0D=CR)
  • ヘッダー行の文字パターンから推定エンコード

Step 2:エンコードの自動判定

references/encoding-detection.md の判定フローで:

  • BOMがあればそれに従う
  • ASCII範囲内(0x00-0x7F)のみなら判定保留
  • 0x81-0x9F、0xE0-0xFC が頻出 → Shift_JIS/CP932
  • 0xC2-0xF4 が3-4バイト連続 → UTF-8
  • 判定不能・両方解釈可能な場合は両方試して「文字化けが少ない方」

Step 3:モール要件との照合

ユーザー指定のモール要件と実際のCSVを比較:

  • 文字コード一致/不一致
  • 改行コード一致/不一致
  • 区切り文字(特にAmazonのタブ区切りに注意)
  • BOM要件

Step 4:範囲外文字の検出

references/sjis-out-of-range.md の禁止文字リストで全行スキャン:

  • Shift_JISエンコード時に「?」「・」に化けるUnicode文字
  • 絵文字・記号
  • 機種依存文字
  • 該当行・列・該当文字を出力

Step 5:Excel破壊の検出

references/excel-traps.md のパターンで検査:

  • 数字列に指数表記(E+12)混入
  • 日付列にシリアル値(5桁数字)混入
  • 先頭0が必要な列(JAN、商品コード等)の桁数異常
  • ハイフン区切り型番が日付化

Step 6:エスケープ崩れの検出

  • 引用符のないカンマ混入で列数不一致
  • 引用符の途中欠落で行数不一致
  • 改行混入で行数異常

Step 7:修正手順とコマンド提示

修正方法を明示:

  • 文字コード変換(iconv -f UTF-8 -t CP932 in.csv > out.csv
  • BOM除去(先頭3バイト削除)
  • 改行コード変換(tr / sed
  • Excel編集を経た場合の再エクスポート手順

出力フォーマット(必須)

# CSV文字コード・形式 検証結果

## 0. 検査対象
- ファイル名:
- サイズ:
- 想定モール:<楽天/Amazon/Yahoo/Shopify/ネクストエンジン/クロスモール/その他>

## 1. バイト列検査結果

| 項目 | 検出値 | モール要件 | 一致 |
|---|---|---|---|
| 文字コード(推定) |  |  |  |
| BOM |  |  |  |
| 改行コード |  |  |  |
| 区切り文字 |  |  |  |

## 2. 範囲外文字の検出

| 行 | 列 | 該当文字 | Unicode | 対策 |
|---|---|---|---|---|
|  |  | ① | U+2460 | ⑴ or (1) に置換 |

## 3. Excel破壊の疑い

| 行 | 列 | 検出パターン | 原データ推定 |
|---|---|---|---|
|  |  | 指数表記 | JANコード13桁 |
|  |  | 先頭0欠落 | 商品コード |

## 4. エスケープ崩れ

| 行 | 種別 | 詳細 |
|---|---|---|
|  | 列数不一致 | カンマ混入の未引用 |
|  | 引用符の対応崩れ | 引用符欠落 |

## 5. 修正手順
1. <文字コード変換 / BOM除去 / 改行変換 のコマンド>
2. <該当セルの個別修正方法>
3. <再エクスポート手順>

## 6. 修正後の再検証チェックリスト
- [ ] 文字コードがモール要件と一致
- [ ] 改行コードがモール要件と一致
- [ ] 範囲外文字なし
- [ ] 先頭0が必要な列が保持されている
- [ ] 列数が全行で一致
- [ ] バックアップを取得済み

品質ゲート

  • モール要件(楽天=SJIS/CRLF、Amazon=UTF-8/TAB、Yahoo=UTF-8/CRLF)を最初に確認している
  • Excelで開いて保存していないか必ず確認している
  • 機種依存文字の検出が①〜⑳・㈱・㈲・㍑等を網羅
  • 先頭0落ち・指数表記・日付化のチェックを含んでいる
  • カンマ・引用符・改行のエスケープ崩れを行数・列数の不一致から検出
  • 修正手順がコマンドレベルで具体的
  • バックアップ取得の指示を含んでいる

エッジケース

  • CP932とShift_JISの違い → CP932(Microsoft版)の方が含む文字が多い(NEC特殊文字・IBM拡張等)。モールが「Shift_JIS」と書いていてもCP932受入のケースあり
  • UTF-8 BOMが必要 or 不要なモール差 → Shopifyは推奨、Excelで開く前提ならBOM付きが便利、システム連携では無BOM
  • Mac で作成したCSVのCR-only改行 → 古いMac Classicの遺物。LFに統一
  • Windowsでメモ帳保存 → 知らず知らずにUTF-8 BOMが付く
  • Numbers/Googleスプレッドシートで開いた → エンコード変換のリスクは Excel と同等以上

注意事項

  • CSV編集は原則テキストエディタ(VSCode/Sublime Text/秀丸等)または専用ツール(Excelなら Power Query で型指定インポート)
  • Excelで開く前に必ずバックアップを取得
  • 大量データ(10万行超)では一部ツールが動作不能、iconv 等のCLIを使う
  • 文字コードの最終判定は実際に該当モールにテストアップロードで確認

references/ 一覧

  • references/encoding-detection.md — 文字コード自動判定の詳細
  • references/sjis-out-of-range.md — Shift_JIS範囲外文字一覧
  • references/excel-traps.md — Excel保存時の破壊パターン
  • references/delimiter-quote-issues.md — 区切り・引用符・改行のエスケープ
  • references/examples.md — モール別の実例

参考公式情報源

  • 楽天RMS「商品データの一括登録」「CSVファイルの仕様」
  • Amazon Seller Central「フラットファイルの仕様」「インベントリファイル」
  • Yahoo!ショッピング「商品データ仕様」
  • Shopify「商品CSVファイルのフォーマット」
  • ネクストエンジン/クロスモール公式ヘルプ

ライセンス: MIT

詳細情報

作者
株式会社ALSEL
ライセンス
MIT
最終更新
2026/5/13
このスキルは株式会社ALSELが制作したオリジナルスキルです。掲載内容について問題がある場合は info@alsel.co.jp までご連絡ください。
制作: 株式会社ALSEL · ライセンス: MIT