結論:機種依存文字は、ECで扱うデータには使わない
機種依存文字(環境依存文字)とは、特定のOS・ソフト・文字コードでしか、正しく表示・保存できない文字のことです。丸数字の「①」、ローマ数字の「Ⅱ」、省略文字の「㈱」、単位記号の「㎏」、全角チルダの「~」などが代表例です。
一部環境では正しく見えていても、データの渡し先によって、「?」や意味のない文字に化けます。ECサイトでは、商品名・説明文だけでなく、お客様が入力する会社名・氏名・住所、メールの定型文、各システムへ渡すCSVなど、機種依存文字が混ざる場面が多くあります。
ECで文字化けを防ぐには、次の3つを守ります。
- 自社で作るテキスト(商品名・説明文・商品管理番号・メールの定型文)には、機種依存文字を使わず、言い換える。お客様が入力した氏名・住所などに混ざっていたら、連携する前に直す(一覧表)
- CSVは、渡し先(モール、カートシステム、配送・会計などの連携先)が指定する文字コードで保存する。指定がなければ、UTF-8にする
- 取り込む前・送る前に、機種依存文字が混ざっていないかを、数式で確認する(チェックの方法)
ECサイトで、機種依存文字が混ざる場面
機種依存文字は、商品登録だけでなく、ECの運営のあちこちで混ざります。
| ECでの場面 | どう混ざるか | 起きること |
|---|---|---|
| 商品情報(商品名・説明文・商品管理番号) | メーカーの資料やWebページからのコピー、Excelでの入力に、「㈱」「㎏」「①」などが入る | モールやカートへの登録で、化ける・エラーになる |
| 受注データ(会社名・氏名・住所・備考) | お客様が入力する「㈱」「髙」「﨑」「①」などが入る | 配送ラベル・会計・請求書などへ連携するときに、化けたり「?」になったりする |
| 在庫・価格・出荷などの一括更新CSV | 商品名や備考の列に混ざる。Excelで保存し直した際に、文字コードが変わる | 取り込みで、日本語全体が化ける |
| 顧客対応のメール・問い合わせ返信の定型文 | 「①」「㈱」「~」などを含む定型文を使い回す | 受け取る側の環境によって、文字が化ける |
| 外部システムとの連携(配送・会計・請求書など) | 渡し先が扱えない文字コードで、CSVやデータを渡す | 変換できない文字が、「?」になる |
機種依存文字が起きる仕組み:Shift_JISには2種類ある
文字コードとは、文字をバイト(数字)に対応させるルールです。日本語でよく使われる文字コードは、次の3つです。
| 名称 | 別名 | 主な使われ方 | 機種依存文字の扱い |
|---|---|---|---|
| 標準のShift_JIS | JIS X 0208(JIS規格) | 規格上の標準 | 丸数字・ローマ数字・㈱・㎏などは含まれません |
| Windows版のShift_JIS | CP932(コードページ932)/Windows-31J | 日本語版Windowsの標準(ANSI) | 標準のShift_JISにない文字を、453字追加しています(NEC特殊文字・IBM拡張文字など)。これが機種依存文字の中心です。 |
| UTF-8 | Unicode | Web、Googleスプレッドシート、最近のシステム | 丸数字や㈱も、1つの文字として、どの環境でも同じように扱えます |
「Shift_JIS」と呼ばれるものには、標準のShift_JISと、Windows版のShift_JISがあります。Windows版は、標準にない453字を足しているため、Windowsで保存したCSVには、標準のShift_JISでは表せない文字が入ることがあります。この足された文字が、機種依存文字の中心です。
Microsoftは、ANSIコードページ(日本語版Windowsではコードページ932)は「異なるコンピューターで異なる場合がある」とし、最も一貫した結果を得るには、UTF-8やUTF-16などのUnicodeを使うよう案内しています(Microsoft「コード ページ識別子」)。
なぜ文字化けするのか:保存と読み込みの文字コードが違うと起きる
文字化けは、CSVを保存した文字コードと、読み込む側が想定する文字コードが違うときに起きます。同じ文字でも、文字コードごとにバイト列が違うため、違う規則で読むと、別の文字になります。
| 文字 | UTF-8のバイト列 | UTF-8のCSVを、Windows版のShift_JISとして読むと | Windows版のShift_JISのバイト列 | Windows版のShift_JISのCSVを、UTF-8として読むと |
|---|---|---|---|---|
| ① | E2 91 A0 | 竭 | 87 40 | �@ |
| ㈱ | E3 88 B1 | 繹ア | 87 8A | �� |
| ㎏ | E3 8E 8F | 緕� | 87 73 | �s |
| ~ | EF BD 9E | �ス� | 81 60 | �` |
この表は、文字コードの表から計算した値です。表示は、読み込むソフトによって、多少異なります。
使う環境ごとの違い
どの環境で保存するかによって、CSVの文字コードが変わります。
| 使う環境・場面 | 保存・読み込みの文字コード | 機種依存文字のポイント |
|---|---|---|
| Excel(日本語版Windows)の「CSV(コンマ区切り)」 | Windows版のShift_JIS(ANSI) | 丸数字・㈱・㎏なども保存できます。ただし、UTF-8で読み込む相手に渡すと化けます |
| Excelの「CSV UTF-8(コンマ区切り)」(Excel 2016以降) | UTF-8(BOM付き) | どの文字も保存できます。UTF-8を指定している登録先に向いています |
| Googleスプレッドシートの「カンマ区切りの値(.csv)」でのダウンロード | UTF-8(BOMなし) | 文字コードは選べません。Shift_JISが必要な場合は、ダウンロードしたあとに変換します |
| 楽天市場・Amazonの商品CSV | UTF-8 | UTF-8以外で保存したCSVを入れると、機種依存文字だけでなく、日本語全体が化けます |
| 配送・会計・請求書などの連携先 | 連携先の指定による | Windows版のShift_JISまでの文字しか扱えない連携先では、一覧表の文字が化けます。UTF-8を指定される場合は、そのまま扱えます |
| ヤフーショッピングの商品CSV | EUC-JP | EUC-JPで扱えるのは、JIS X 0208とJIS X 0212の文字です。下の一覧表の文字のうち、「№」(JIS X 0212に含まれます)以外は、EUC-JPでも扱えません |
モールごとの文字コードと、文字数の上限の数え方は、CSV一括編集 文字数上限の正しい理解にまとめています。
ECで出会いやすい機種依存文字の一覧表
判定は、標準のShift_JIS(JIS X 0208)とWindows版のShift_JIS(Windows-31J)の文字コード表に基づきます。○はその文字コードで使える、×は使えない、という意味です。
| 分類 | 文字 | 標準のShift_JIS | Windows版のShift_JIS | UTF-8 | 言い換えの例 |
|---|---|---|---|---|---|
| 丸数字 | ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ | × | ○ | ○ | 「(1)」「1.」、または数字だけ(「1」) |
| ローマ数字(大文字) | ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ | × | ○ | ○ | アルファベットの大文字(「I」「II」「III」) |
| ローマ数字(小文字) | ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ | × | ○ | ○ | アルファベットの小文字(「i」「ii」「iii」) |
| 単位記号(カタカナ) | ㌔㌘㌢㌧㌫㌻㍉㍊㍍㍑㍗ | × | ○ | ○ | カタカナで書く(「キロ」「グラム」「センチ」「トン」「パーセント」「ページ」「ミリ」「ミリバール」「メートル」「リットル」「ワット」) |
| 単位記号(英字) | ㎎㎏㎜㎝㎞㎡㏄ | × | ○ | ○ | 半角の英字で書く(「mg」「kg」「mm」「cm」「km」「m2」「cc」) |
| 省略文字 | ㈱㈲㈹ | × | ○ | ○ | 「(株)」「(有)」「(代)」 |
| 番号・電話の記号 | №℡ | × | ○ | ○ | 「No.」「TEL」 |
| 年号 | ㍻㍼㍽㍾ | × | ○ | ○ | 「平成」「昭和」「大正」「明治」 |
| 囲み文字 | ㊤㊥㊦㊧㊨ | × | ○ | ○ | 「(上)」「(中)」「(下)」「(左)」「(右)」 |
| 数学記号 | ∑ | × | ○ | ○ | 「Σ」(ギリシャ文字) |
| 全角チルダ・全角ハイフン | ~- | × | ○ | ○ | 「~」は波ダッシュ「〜」、「-」は半角のハイフン「-」 |
| 旧字体・異体字 | 﨑髙 | × | ○ | ○ | 「崎」「高」(人名・社名は、正式な表記を確認してから使い分けます) |
| ハート | ♡❤♥ | × | × | ○ | 「★」「☆」「♪」など標準の記号、または言葉 |
「Windows版のShift_JIS」が○でも、UTF-8を指定している登録先にそのまま入れると、化けます。標準のShift_JIS、Windows版のShift_JIS、UTF-8のどれで読まれても化けないようにするには、一覧にある文字を使わないのが、確実です。
事例:全角チルダ「~」と波ダッシュ「〜」
「~」(全角チルダ、U+FF5E)と「〜」(波ダッシュ、U+301C)は、見た目がほとんど同じですが、別の文字です。
- 標準のShift_JISには、「〜」(波ダッシュ)があり、「~」(全角チルダ)はありません。
- Windows版のShift_JISでは、バイト列「81 60」が「~」として扱われます。標準のShift_JISでは、同じ「81 60」が「〜」です。
- そのため、「~」を標準のShift_JISへ変換すると、「?」になることがあります。
数量や範囲を書く「10~20個」のような表記が、特に化けやすい箇所です。「10〜20個」と波ダッシュにするか、見分け方が分からないようなら「10-20個」と半角のハイフンにしてしまうのが良いでしょう。
機種依存文字を見つけて直す方法
1. 言い換える
上の一覧表の「言い換えの例」に直します。
2. CSVの文字コードを、登録先に合わせる
Excelなら、「名前を付けて保存」で「CSV UTF-8(コンマ区切り)」を選びます。Googleスプレッドシートのダウンロードは、UTF-8です。
3. 混ざっていないかを、数式で確認する
商品名がA列にある場合は、B2に次の数式を入れて、下にコピーします。TRUEの行に、一覧表の機種依存文字が含まれています。
=REGEXMATCH(A2, "[①-⑳Ⅰ-Ⅹⅰ-ⅹ㌀-㏿㈀-㋿№℡~-♡❤♥∑﨑髙]")この数式が調べるのは、一覧表の文字です(一覧にない文字は、検出できません)。条件付き書式でTRUEの行を赤くすると、見落としを防げます。
4. ルールとして共有する
担当者が替わっても防げるように、ECの運営ルールとして、登録ルール表の「載せない表現」に書いておきます。作り方は、商品情報シートと登録ルールの作り方で解説しています。
よくある質問
Q. 機種依存文字と環境依存文字は、同じですか?
多くの場合、同じ意味で使われます。「機種依存」は、特定のパソコンの機種に依存するという古い言い方で、「環境依存」は、OS・ソフト・文字コードなどを含む環境全般に依存する、という言い方です。
Q. 丸数字の「①」は、なぜ使ってはいけないのですか?
標準のShift_JISにないためです。Windows版のShift_JISで保存したCSVでは使えても、標準のShift_JISやEUC-JPで読む登録先や、システム連携では、化けたり「?」になったりします。「(1)」や「1.」に言い換えるのが確実です。
Q. UTF-8なら、機種依存文字を使っても大丈夫ですか?
CSV全体をUTF-8で保存し、登録先もUTF-8で読み込むなら、文字としては扱えます。ただし、あとからShift_JIS系のシステム(配送・会計の連携など)へデータを渡すときに化けるため、ECのデータには使わないのが安全です。
Q. お客様が入力した氏名・住所に、機種依存文字が入っていたら、どうすればよいですか?
配送ラベルや会計などへ連携するときに化けることがあるため、連携する前に確認します。「髙」「﨑」のように、別の字に変えると宛名が違ってしまう人名は、言い換えず、連携先が扱えるUTF-8で渡すのが確実です。連携先がUTF-8に対応していない場合は、連携先の指定に合わせて、対応方法を確認します。
Q. 文字化けしたCSVを、元に戻せますか?
化けた状態で保存してしまうと、元に戻らないことが多いです。保存し直す前に、元のファイルを、正しい文字コードを指定して開き直します。Excelでは、「データ」タブの「テキストまたはCSVから」で、ファイルの文字コードを指定して読み込めます。
Q. AIで商品説明文やメールの文面を作るとき、機種依存文字を避けるには、どうすればよいですか?
プロンプトの「使わない表現」に、使わない文字を書いておき、生成した文章を、上の数式で確認します。商品説明文のプロンプトの作り方は、商品説明文をChatGPT・Claudeで作るプロンプト集で紹介しています。
まとめ
- 機種依存文字は、標準のShift_JISにない、Windows版のShift_JISなどで足された文字で、環境によって化けます
- 文字化けは、CSVを保存した文字コードと、読み込む側の文字コードが違うと起きます
- ECで扱うデータには、一覧表の文字を使わず、CSVは渡し先の指定する文字コード(指定がなければUTF-8)で保存します



