CSVを開くときと、相手へ渡すときの文字コードを分けて考える

文字コードは、ファイルに保存されたデータをどの文字として読むかを決める規則です。作成した側と開く側で規則が合わないと、日本語が読めない表示になることがあります。拡張子が.csvであることだけでは、どの規則を使っているかは分かりません。

Shopifyの公式ヘルプでは、ShopifyへのインポートとShopifyからのエクスポートに使うCSVはUTF-8と案内されています。一方、国内配送システムの取込形式ではCP932が指定されることがあります。ファイル名が同じCSVでも、Shopifyへ戻すのか、配送会社へ渡すのかで保存形式を分けてください。

CSVの受け渡し方向と文字コードの考え方
ShopifyへインポートするCSVShopifyの最新仕様に従い、UTF-8で保存します。列名や引用符もテンプレートどおりか確認します。
Shopifyからエクスポートした注文CSV元ファイルはUTF-8として扱い、配送会社用へ変換する前の入力データとして保持します。
国内配送システムへ取り込むCSV利用する取込画面の仕様を優先します。Shipping Assistantの現在の対応形式はCP932で出力します。
配送システムから出力した結果CSV送り状番号の反映では、対応取込形式ごとにUTF-8またはCP932を判定します。Excelで再保存せず元ファイルを使うのが安全です。

たとえば、Shopifyの注文CSVを確認する場面では、元のUTF-8を正しく読む必要があります。その後、別の文字コードを指定する配送システムへ渡す場面では、その形式で出力します。「開けなかったから別の形式で上書きする」のではなく、今は読み取りと書き出しのどちらをしているかを分けてください。

文字化けと形式崩れを見分ける

日本語が崩れたとき、番号が短くなったとき、列の位置がずれたときでは確認する設定が異なります。文字コードを変えればすべて直るわけではないため、まず今の症状を次の表に当てはめてください。

症状から確認するポイント
氏名や住所が読めない記号になるUTF-8のファイルをCP932として開いた、またはその逆の可能性があります。元ファイルの文字コードを確認します。
郵便番号や電話番号の先頭0が消える文字コードではなく、表計算ソフトが数値として解釈した可能性があります。対象列を文字列として扱います。
1行が複数列へずれる住所や商品名に含まれるカンマ、改行、ダブルクォートの扱いを確認します。単純な文字コード変換だけでは直りません。
配送システムがファイルを受け付けない文字コードだけでなく、列数、列順、見出し、改行、必須項目が取込形式と一致しているか確認します。

Excelで開けることと、取り込めることは別です

画面上で日本語が読めても、保存時に文字コード、先頭0、日付、長い番号、引用符が変わることがあります。取り込み前は、保存後のファイルを対象システムの仕様で再確認してください。

日本語だけが読めないなら、以下のExcel読込手順で文字コードを確認します。日本語は読めるのに先頭0だけが消えたなら、列を数値として扱った可能性があります。列がずれる場合は、カンマや引用符を含む値の扱いも確認し、CSVを単純にカンマで分割して直す方法は避けます。

郵便番号・電話番号の先頭0が消えた場合

先頭0が消えたら、未編集の原本に0が残っているかで対処を分けます。原本の確認にはテキストエディターなど、番号を自動で数値に変換しない方法を使います。短くなった番号の表示形式を後から文字列に変えるだけでは、失われた0は戻りません。

先頭0が消えたときの確認先と対処
未編集の原本に0が残っている次の「Excelで文字化けしたら、原本をインポートし直す」の手順で、対象列をテキスト型として読み込み直します。
編集・保存後に0が失われ、未編集の原本がないCSVを再取得するか、Shopify注文の元の値を確認して作り直します。短くなった番号へ一律に0を足して復元しないでください。
再取得したCSVでも番号が不明・不足しているShopify注文の配送先情報を確認し、正しい番号が分かってから修正します。元の値が不明なまま、文字数だけを合わせないでください。

注文情報の不足とCSV編集時の欠落の切り分けは、記事末尾の関連記事「Shopifyの配送先住所をCSVへ整える」でも説明しています。原本から読み直した後も、番号を注文の元の値と照合してから配送会社へ渡してください。

Excelで文字化けしたら、原本をインポートし直す

日本語が読めない状態で保存せず、元のCSVを残して閉じます。以下はMicrosoft公式資料に基づく、Windows版ExcelでPower Queryの「テキスト/CSVから」を利用できる場合の手順です。Mac版・Web版や別のバージョンで同じ画面になるとは限らないため、該当メニューがない場合は、記事末尾のMicrosoft公式資料で対応機能を確認してください。

Shopifyの注文CSVで文字列として確認する列
Shipping Zip配送先の郵便番号。0010001などの先頭0を保持します。請求先のBilling Zipとは区別します。
Shipping Phone配送先の電話番号。0312345678などの先頭0を保持します。請求先のBilling Phoneとは区別します。
Name管理画面に表示される注文番号。#1001などの記号を含め、原本の値を保持します。
  1. 未編集の原本を確認して選択する

    先頭0が消えた場合は、まずテキストエディターで未編集の原本に0が残っていることを確認します。空のブックの「データ」から「テキスト/CSVから」を選び、その原本を指定します。

  2. 読み込みプレビューで文字コードと区切りを確認する

    Shopifyが出力した元の注文CSVはUTF-8として確認します。日本語が読めること、カンマ区切りで見出しと値が同じ列に入ることを確認してから進めます。

  3. 自動の型検出を止め、番号をテキストとして扱う

    プレビューでデータ型の検出を無効にすると、すべての列をテキストとして扱えます。「データの変換」(バージョンによっては「編集」)で編集画面を開きます。すでに自動の型変換がある場合は対象列を選び、データ型を「テキスト」に変更します。型の変更を確認するダイアログでは「現在を置換」を選び、先に数値化する変換を残さないようにします。

  4. 原本と同じ値になってから読み込む

    Shipping Zip・Shipping Phone・Nameを原本と照合し、先頭0や記号が残っていることを確認して「閉じて読み込む」へ進みます。金額や数量を計算する場合は、計算に必要な列だけを数値型へ変更し、番号の列はテキストのまま保持します。

  5. 保存後のCSVも原本と照合する

    編集が必要な場合だけ別名で保存します。保存後のCSVをテキストエディターで開き、対象の番号が原本と一致するか確認します。たとえば0010001が10001へ、0312345678が312345678へ変わっていないかを見ます。受け渡し先の文字コード・見出し・列順も別途確認してください。

疑問符で上書きされた文字は、保存形式だけでは戻せません

元の日本語が「?」などの別の文字として保存された後は、UTF-8に変更しても元の氏名や住所を特定できません。未編集のCSVを取り直すか、Shopify注文の元の値を確認して作り直してください。先頭0や桁数が失われた番号も推測で復元しないでください。

番号が短いままなら、読み込みを確定する前に、原本と自動の型変換を再確認してください。Excelのセルに見える値だけで判断せず、保存後のCSVにも元の番号が残っていることを確認してから配送会社へ渡します。

読み直せた後は、原本と受け渡し用ファイルを分けて保管する

同じ問題を繰り返さないために、取得したCSVは原本として残し、編集するファイルを別にします。原本があれば、保存後に値が変わったときも、Shopifyの出力時点から変わったのか、編集途中で変わったのかを比べられます。

次に、受け渡し先で使う列と文字コードを確認します。配送会社へ渡すCSVと、送り状番号の反映のために配送会社から受け取るCSVは、別の形式です。前回使えた保存方法を、逆方向のファイルにもそのまま当てはめないでください。

生成済みの配送CSVや発行結果CSVは、確認のために開いた後、不要な再保存をしないようにします。形式や表計算ソフトを変更したときは、通常件数へ広げる前に少数で値と取り込み結果を確認してください。取り込み先で発行や通知まで進む操作は、実際の出荷と検証を区別して行います。

架空データで確認する項目

確認用の値は、日本語と数字の両方を含むものを選びます。次の表は説明用の架空データで、実際の配送先ではありません。表の値を入れることよりも、読み込み前後で変わっていないかを見比べることが目的です。

CSV確認用の架空データ例
氏名ストアシス 太郎:日本語が置換文字や疑問符になっていないか確認します。
郵便番号0010001 → 10001:ハイフンなしの番号を数値として読むと先頭の0が消える例です。原本の0010001を文字列として保持し、取込先が求めるハイフン形式も確認します。
電話番号0312345678 → 312345678:先頭の0が消える例です。原本と同じ桁が保持されているか確認し、この例に合わせて実際の番号を補完しないでください。
住所北海道札幌市北区北1条西2丁目3-4:漢字、数字、ハイフン、住所分割が崩れていないか確認します。
注文番号#1001:記号を含む値が意図どおりに保持されているか確認します。

先頭0や記号が残っていれば、値を保持して読めているかを確かめられます。ただし、ここに挙げた値が保持されることと、利用する配送会社のすべての取込条件を満たすことは別です。実際の形式では、文字数、必須項目、住所の分け方も確認します。

同じ変換を繰り返すなら、作業方法を固定する

一度だけ少数の注文を扱う場合は、原本を残し、読み込み設定を確認しながら表計算ソフトで作業できます。毎回同じ配送形式へ変換する場合は、担当者の記憶に頼らず、列対応と保存形式を決めておくと確認しやすくなります。

複数の形式へ出力したり、同じ転記を日々繰り返したりする場合は、アプリで形式を揃える方法もあります。選ぶ基準は、CSVを出せるかだけではありません。どの形式へ出すかが明確で、扱えない文字や不足した値に気づけるかを確認してください。

Shipping AssistantでCP932の配送CSVを出力する

Shipping Assistant アプリは、Shopify注文を現在対応している国内配送会社向けの列へ変換し、CP932でCSVを生成します。住所、電話番号、郵便番号、必須項目、文字コードで問題がある場合は、破損したCSVをそのまま出力せず確認結果を表示します。

Shipping Assistantの出力前チェック画面で郵便番号、電話番号、住所のエラーと警告を確認する様子
実際のShipping Assistantの出力前チェック画面。実顧客情報を含まない架空注文で、CSV生成前のエラーと警告を表示しています。

よくある質問

ShopifyのCSVはUTF-8ですか?

Shopify公式ヘルプでは、ShopifyへのインポートとShopifyからのエクスポートに使えるCSVはUTF-8と案内されています。配送会社向けCSVは別の仕様になるため、受け渡し先ごとに確認してください。

CP932とShift_JISは同じですか?

近い文字コードとして扱われることがありますが、厳密には文字の対応範囲に差があります。取り込み先がCP932を指定している場合は、CP932として出力できる方法を選んでください。

Excelで開いて保存し直しても大丈夫ですか?

保存設定によって文字コード、先頭0、日付、長い番号が変わる可能性があります。配送システム用に生成したCSVは、必要がなければ再保存せず取り込む方が安全です。

Shipping Assistantの出力はUTF-8へ変更できますか?

現在公開している国内配送会社向け形式はCP932で出力します。利用する取込画面が別の文字コードを要求する場合は、対応形式と出力設定を事前に確認してください。

参考資料

配送会社の利用条件や取込仕様は変更されることがあります。作業前に公式の最新情報もご確認ください。