CSVに受注データが含まれない原因は特殊文字(機種依存文字)
受注CSVをダウンロードしたところ、ある受注データがCSVに含まれていない。とお問い合わせがありました。
以前にも他のお客様から同様の問い合わせを頂いたことがありましたので、原因は特殊文字(機種依存文字)だろうと推測しました。
特殊文字、機種依存文字とは?
CSVの文字コード(テキストエンコーディング)はShift_JISです。
一方、EC-CUBEのフロントページや管理画面の文字コードはUTF-8です。
UTF-8で扱える文字の中には、Shift_JISで扱えない文字があります。
これを特殊文字や機種依存文字と呼びます。
少し例を挙げますと以下のようなものが特殊文字です。
- ①
- ②
- ③
- ㋐
- ㋑
- ㋒
- 㐈
- 㒁
- 㑗
- 㒸
上記はほんの一部ですが、実際にはもっと多いです。
なお、Shift-JISで特殊文字を扱うと文字化けが発生します。
(文字化けは機種依存文字が原因ということです。)
なぜ特殊文字が含まれてしまうのか?
EC-CUBEのシステムやデータベースはUTF-8です。
会員登録する情報もUTF-8であれば、注文情報ももちろんUTF-8です。
そして、管理画面で登録する情報もすべてUTF-8です。
EC-CUBEで扱う情報がUTF-8である以上、Shift_JISで扱えない特殊文字も含まれる可能性は大いにあります。
一般的には、会員名や住所に特殊文字が含まれていることが多いです。
特殊文字を修正すれば、正常にCSVがダウンロードできる
会員名や住所に特殊文字が含まれていると、受注CSVにその受注だけ格納されません。
ですから、特殊文字をShift_JISで扱える文字に修正するとCSV内にデータが格納されます。
今回は商品名に特殊文字が使用されていた
今回お問い合わせを頂き、受注データを調べてみますと、商品名に特殊文字が使用されていました。
ですので、以下の対応を行いました。
- 商品マスターで商品名を変更
- 受注情報の商品名を変更
以上の対応で無事CSV内に該当受注が含まれるようになりました。
ちなみに、このお客様は商品情報を1件ずつ管理画面から登録していました。
ですので、機種依存文字が含まれても気づかなかったようです。
CSVで一括登録しているのであれば、商品登録時にお気づきになっていたはずです。
(なぜなら特殊文字が含まれていると、CSV作成時にエラーが発生するからです。)
弊社では月額保守サービスを提供しており、このレベルのお問い合わせであれば月額保守内で対策を含めて対応をさせて頂きます。
今回のご相談頂いたお客様は月額保守サービスをご契約頂いておりましたので、無償で対応させて頂きました。
最後に機種依存文字チェッカーのご紹介
文章内に機種依存文字が含まれているかを簡単にチェックできるサービスがあります。
その名も「機種依存文字チェッカー」
参考:機種依存文字チェッカー
そうすると、特殊文字だけ赤く反転します。
とても便利ですね。
投稿者プロフィール
- サンクユーのEC-CUBE先生。
EC-CUBEのカスタマイズをし出して早15年。
難易度の高いカスタマイズもお任せ。
2系、3系、4系すべて対応可能。
実はjavaでの業務システム開発がエンジニア人生のスタート。
PHP、Perl、フロントエンド開発、Movable Type、Wordpressも得意という万能エンジニア。
最新の投稿
- EC-CUBE2024.10.17EC-CUBE4系の対応状況(ステータス)
- EC-CUBE2024.08.06EC-CUBE4.3へのバージョンアップ
- EC-CUBE2024.08.01EC-CUBEでシーズンカタログ機能を実装する
- EC-CUBE2024.07.26EC-CUBEで直販と代販を両立させる