TOP > これからBOSSを活用したい方 > EC運用に必須!CSVファイルの文字化けを回避するには?
EC運用に必須!CSVファイルの文字化けを回避するには?
2024年11月29日
みなさん、BOSSをはじめモールへの商品登録など、EC業務運営でたびたび登場する「CSVファイル」、活用してますか?
よく「CSVファイルは苦手なので、できるだけ使いたくない!」といったお声をいただくのですが、やはり一括でデータを登録・更新するのに活用できるツールではあります。
今回はCSVのかんたんな説明と、最もみなさまが心配されている
・文字化け
・想定していない表示に変換される
という問題の原因と解決方法についてご案内します!
ちょっと全部読む時間がとれないなという方は、以下の目次から「どうすれば解決できる?」だけでも読んでみてください。
目次
CSVとは?
CSVファイルを開くときに起こる問題
文字化けや予期せぬ変換の発生原因
どうすれば解決できる?
まとめ
CSVとは?
まず「CSV」とはどういう意味なんでしょう?
システム関連の用語にはアルファベット3文字の略語が多くて、混乱しますね。
上記の通り「CSV」とは「カンマで区切られた値」という意味しかありません。
もう少しCSVファイルを詳しく知るために、普段Excel開いている「Excel」などのアプリではなく、メモ帳などテキスト編集用のアプリで開いてみましょう。
こちらを見ていただくと、確かに「CSV = カンマで区切られた値」の名前の通り、各項目の値がカンマで区切られている内容であることがご理解いただけると思います。
実際に業務に使用するCSVファイルは各項目がもっと長い文字列だったりして、こんなにきれいには表示されないと思いますが、基本は同じです。
同じファイルをExcelで開くと上記のようになります。Excelというアプリがカンマで区切られてるだけのシンプルなCSVファイルを、より閲覧、編集などがしやすいように表形式で表示してくれています。
CSVは「各項目の値がカンマで区切られる(+ひとつのデータが終わると改行する)」というとってもシンプルな形式だからこそ、異なるシステム同士のデータのやり取りに適しており、その結果として楽天RMSへの商品登録、BOSSへの注文データ登録、B2やe飛伝などへの送り状データの登録などみなさんの身近なシステムでも採用されています。
※厳密にはもう少し細かいルールがあります。
CSVファイルを開くときに起こる問題
見ていただいた通りかんたんな仕様であるCSVファイルなんですが、ではなぜみなさんが苦手意識を持つことになってしまったんでしょう?
その原因としてよく伺うのは、
・CSVファイルをExcelで開いたら、文字化けしてしまった
・「00012345」など「0」で始まる商品コードが「12345」と先頭の「0」が消えてしまう
・「4971633480020」など桁数の多い数値の商品コードが「4.9716E+12」と変換されてしまう
・「-red-s」など「-」(ハイフン)で始まる文字が「#NAME?」となってしまう
など、想定外の値に変換されてしまい、結果として努力して作成したCSVのデータが壊れてしまい作成し直すことになってしまったなどの苦い経験です。
この問題が解決できれば、みなさん安心してCSVファイルを活用いただけるのかなと思います。
文字化けや予期せぬ変換の発生原因
ではなぜ文字化けや想定外表示が発生するのでしょうか。大きく分けて2つの原因があります。
1.CSVを作成した時とExcelで開いた時の「文字コード」が一致していない
データがこうなってしまうと、ゾッとしますね。
コンピュータは「0」と「1」の数値の組み合わせでデータを扱うため、例えば「01」=「あ」、「02」=「い」というように、文字や記号にもそれぞれ固有の数値がルールに従って割り当てられ処理されています。
これだけなら簡単なのですが、やっかいなのがこの「割り当てルール」が複数存在することです。
ルール『A』では「01」=「あ」でも、別のルール『B』では同じ「01」=「繝」など別の文字に割り当てられてしまっているのです。
ルール『A』で作成したCSVファイルを、ルール『B』だと思ってファイルを開いたら、当然全く読めない理解することができない内容になってしまう。これが「文字化け」が発生する原因です。
この数値を文字に変換するルールのことを「文字コード」といいます。みなさんも言葉としては聞いたことはあるんじゃないかと思います。
数多くの種類の「文字コード」が存在しますが、現在日本語を扱う環境では「Shift-JIS」か「UTF-8」の2種類が使用されることが多いです。
つまり「UTF-8」で作成したファイルを「Shift-JIS」で開こうとする、もしくはその逆が文字化けするほとんどの原因になっています。
2.Excelが勝手に解釈して変換してしまう
上記のようにもともとの値とは異なった表示に変換されてしまうケースは、意図している値とExcelの予測がとずれてしまっているのが原因です。
それぞれ
・「001」 → 数値だろうから「1」に変換
・「4971633480020」 → 桁数が多い数値だろうから省略して表示できる「指数表記」に変換
・「-s-red」→「-」(マイナス)で始まってるから計算式だろうとして解釈してエラー
・「3-14」→数値の間に「-」(ハイフン)がある表記は日付だろうと判断して日付に変換
といった感じです。
つまりExcelが「〜だろう」と予測して、よかれと思って変換してくれてる内容が、実際と異なる場合に問題となります。
例えば「3-14」が実際に日付のデータであれば問題にはならないかもしれませんが、これが「商品コード」であった場合は「日付」に変換されてしまうと意味が変わってしまいますよね。
Excelがこの「余計なお世話」しないようにする、もしくは事前に気づいて修正できれば問題は解決できそうです。
どうすれば解決できる?
Excelを利用する方法
以下の手順でExcelでCSVファイルをひらけば、上記の問題の解決できます!
これまでは「CSVファイルをExcelで直接編集する」という操作だったのが、「CSVファイルをExceで正しい形式で読み込む」という違いがあります。
ポイントは「ダブルクリックで開かない!」ことです。
1.Excelで「空白のブック」を新規作成します。
2.[データ]タブを選択し、「テキストまたはCSVから」のアイコンをクリックします。
3.「データ取り込み」画面でPC上の開きたいCSVファイルを選択し、[インポート]をクリックします。
4.サンプル画面が表示されます。文字化けしているのが確認できますね。
この場合は「元のファイル」の選択肢から文字化けしない「文字コード」を選択してください。
先述の通り「UTF-8」もしくは「Shift-JIS」を選択すれば解決することが多いです。
5.文字化けが解消していることが確認できたら、[データの変換]をクリック。
※[読み込み]ボタンでないことに注意!
6.「Power Queryエディター」画面に遷移します。
表示されているプレビューを確認すると、本来は「001」である「会員番号」の先頭の「00」が消えて、「1」と表示されてしまっています。
「会員番号」の項目が選択された状態で「データ型」を見てみると、『整数』が選択されているので、Excelが「001」を数値として読み取りしようとしていることがわかります。
会員番号「001」は先頭の「00」にも意味がある文字列なので、『テキスト』を選択します。
7.確認画面が表示されるので、[現在のものを置換]をクリックします。
8.正しく変更できたのが確認できたら、[閉じて読み込む]をクリックします。
9.最初に作成した「空白のブック」にCSVファイルの内容が取り込まれて表示されます。
この時点では内容が保存されていないので、一旦ファイルを保存する必要があります。
CSVファイルとして保存するには、保存時に「ファイル形式」を『Excelブック(.xlsx)』から
『CSV (コンマ区切り) (.csv)』もしくは『CSV UTF-8 (コンマ区切り) (.csv)』を用途に応じて選択してください。
Excel以外のアプリを利用する方法
想定外の表示に変更してしまうのは「Excel」の仕様なので、そういった処理を行わない別のアプリでCSVを編集するという解決方法もあります。
Windowsユーザの方向けにはなりますがハングリードでおすすめしているのは、CSVファイル編集用のフリーソフトである「Cassava Editor」です。
「Cassava Editor」は余計な変換などは一切行わず、「Shift-JIS」と「UTF-8」の文字コードの自動判定も行なってくれるため文字化けも発生しにくくなっています。
まとめ
今回はCSVファイルを開くときに発生する「文字化け」と「想定しない表示への変換」の原因と回避方法を説明しました。
最初はとっつきにくい「CSVファイル」ですが、一度マスターしてしまうと業務の効率化の強い味方になってくれます!
ぜひこれからは、苦手意識を持つことなく「CSVファイル」を活用していきましょう!!
BOSSの運用やプランについてのお問い合わせ窓口
お気軽にお問い合わせください!