Excel CSV形式ファイルにおける今どきUTF-8文字コード問題の傾向と対策Tech TIPS

住所録などでは人名や地名にシフトJISでは表現できない漢字などが使われていることがある。これらのデータをCSV形式でやりとりするには、文字コードに「UTF-8」を使うとよい。その方法を紹介しよう。

» 2021年12月20日 05時00分 公開
[小林章彦デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象:Excel 2013/2016/2019/2021/365


環境依存文字を含むデータをCSV形式でやりとりするには 環境依存文字を含むデータをCSV形式でやりとりするには
人名や地名の中には、環境依存文字(異字体など)が含まれていることがある。環境依存文字を含むExcelのシートをCSV形式でやりとりしなければならない場合、文字コードにUTF-8を指定するとよい。なお画面の住所録は、「テストデータ・ジェネレータ」によって作成した架空のサンプル用のデータを記事用に修正したものである。

 「Microsoft Excel(エクセル)」で作成した表を、CSV形式で保存し、別のアプリケーションに読み込ませることはないだろうか。また、取引先にデータを送る際に、XLSX形式ではなく、CSV形式が要求されることもあるだろう。逆にCSV形式で受け取ったデータをExcelで読み込んで処理したいというケースもあり得る。

 このような場合、環境依存文字(機種依存文字)が含まれていると、CSV形式に変換する際に、正しく文字が出力されないことがある。こうした事態を防ぐには、環境依存文字を見つけ、代わりの文字に置き換える必要がある。環境依存文字を見つける方法は、Tech TIPS「構造化Excelテク:表内にある環境依存文字をチェックして文字化けやデータの欠落を防ぐ」を参照してほしい。

 しかし、Webサイトから収集したデータや、住所録など人名や地名では、文字コードが「シフトJIS(Shift-JIS)」であると表現できない文字が使われており、代わりの文字に置き換えられないこともある。そうした場合の対処方法を紹介しよう。

文字コードをUTF-8にして保存する

 環境依存文字が含まれており、その文字を置き換えられない表の場合、CSV形式に保存する際に文字コードを「UTF-8」にするという手がある。もちろん読み込ませるアプリケーションや取引先が、UTF-8のCSV形式を扱えるのが前提になる。UTF-8のCSV形式に対応していない場合は、前述のTech TIPS「構造化Excelテク:表内にある環境依存文字をチェックして文字化けやデータの欠落を防ぐ」を参考に環境依存文字を探して、平仮名や片仮名、別の漢字などに置き換える必要がある。

Excel 2016以降の場合

 Excel 2016以降の場合、CSVで保存したいシートを選んでから、[ファイル]−[名前を付けて保存]または[コピーを保存]を選択し、[参照]をクリック、[名前を付けて保存]ダイアログを開き、「ファイルの種類」のプルダウンリストで[CSV UTF-8(コンマ区切り)]を選択すればよい(Excel 2016では、更新プログラムを適用しないと[CSV UTF-8]は表示されないので注意)。開いていたシートが、UTF-8のCSV形式で保存される。「メモ帳」アプリなどのUTF-8に対応したテキストエディタで開くことで、データの確認が可能だ。

文字コードをUTF-8にして保存する(1) 文字コードをUTF-8にして保存する(1)
[ファイル]−[名前を付けて保存]または[コピーを保存]を選択し、[保存]ボタンの左側にあるプルダウンリストで[CSV UTF-8(コンマ区切り)]を選択する。
文字コードをUTF-8にして保存する(2) 文字コードをUTF-8にして保存する(2)
「メモ帳」アプリでデータを確認する。UTF-8で保存されており、環境依存文字(高橋の「はしご高」など)も正しく表示されていることが分かる。少々分かりにくいが、葛飾区と葛城市の「葛」の字形が異なっていることに気付いてほしい。葛城市の「葛」の字は、異字体のためシフトJISでは表現できない。

 なお、表中の住所や名前に異体字が含まれている場合、テキストエディタによっては異体字がJIS2004の字形に変わり、次の文字との間に「??」や「□」が挿入されてしてしまうので注意してほしい(異体字については、Tech TIPS「Windows 10の日本語入力システム(MS-IME)で異体字を入力可能にする」参照のこと)。「メモ帳」アプリでは異体字も正しく表示されるので、データを確認する際は「メモ帳」アプリを使うとよいだろう。

Excel 2013の場合

 Excel 2013の場合、[名前を付けて保存]ダイアログの「ファイルの種類」プルダウンリストに[CSV UTF-8(コンマ区切り)]が存在しない。そこで、「ファイルの種類」のプルダウンリストで[Unicodeテキスト]を選択し、Unicodeのテキスト形式で保存する。

Excel 2013の場合はUnicodeテキストで保存する Excel 2013の場合はUnicodeテキストで保存する
[名前を付けて保存]ダイアログの「ファイルの種類」のプルダウンリストで[Unicodeテキスト]を選択し、Unicodeで保存する。

 タブ区切りのテキスト形式で保存されるので、タブを「,(カンマ)」に変換すればよい。それには、以下の手順で置換を実行する。

  1. 「メモ帳」アプリでUnicodeテキストで保存したテキストファイルを開く
  2. タブの部分を[Ctrl]+[C]キーでクリップボードにコピーする
  3. [編集]−[置換]を選択して[置換]ダイアログを開く
  4. 「検索する文字列」欄の入力ボックスをクリックし、[Ctrl]+[V]キーでタブを貼り付ける
  5. 「置換後の文字列」欄の入力ボックスに「,(カンマ)」を入力する
  6. [すべて置換]ボタンをクリックする
タブ区切りを「 (カンマ)」に変換する,タブ区切りを「,(カンマ)」に変換する
「メモ帳」アプリでテキストファイルを開き、タブの部分を[Ctrl]+[C]キーでクリップボードにコピー、[編集]−[置換]を選択して[置換]ダイアログを開く。[置換]ダイアログの「検索する文字列」欄の入力ボックスをクリックし、[Ctrl]+[V]キーでタブを貼り付ける。「置換後の文字列」欄の入力ボックスに「,(カンマ)」を入力する。[すべて置換]ボタンをクリックすると、タブが「,(カンマ)」に置換され、カンマ区切りのCSV形式となる。

 ただし、文字列の途中にタブが含まれている場合は、そのタブも「,(カンマ)」に変換されてしまうので注意が必要だ。タブが含まれている可能性がある場合は、ExcelでUnicodeテキストで保存する前に、シート内で使っていない文字(例えば、「〜」など)へタブを置換しておき、「メモ帳」アプリでタブを「,(カンマ)」に置換した後に、「〜」からタブに置換するなどの工夫が必要になる。

 タブが「,(カンマ)」に置換できたら、[ファイル]−[名前を付けて保存]を選択し、[名前を付けて保存]ダイアログで、「文字コード」のプルダウンリストで[UTF-8(BOM付き)]を選択し、拡張子を「.csv」にして保存すればよい。

UTF-8(BOM付き)で保存する UTF-8(BOM付き)で保存する
[ファイル]−[名前を付けて保存]を選択し、[名前を付けて保存]ダイアログで、「文字コード」のプルダウンリストで[UTF-8(BOM付き)]を選択し、拡張子を「.csv」にして保存する。

受け取ったCSV形式のファイルがExcelで文字化けする場合

 取引先などから受け取ったCSV形式のファイルをExcelで読み込んだら、文字化けしてしまった、という経験はないだろうか。これは、Excelが文字コードを正しく認識できなかったのが原因だ。

 取引先にファイルの再送をお願いする前に、次の手順を試してみよう。

 「メモ帳」アプリでCSV形式のファイルを開く。ここで文字化けしているようならば、データが壊れている可能性があるので、理由を説明して再送をお願いしよう。

 正しく文字が認識できる場合は、[ファイル]−[名前を付けて保存]を選択し、[名前を付けて保存]ダイアログで、「文字コード」のプルダウンリストで[UTF-8(BOM付き)]を選択して上書き保存する。「BOM」とは「Byte Order Mark」の略で、文字コードが「UTF-8」であることを示すヘッダのことだ。これがあることで、明示的にファイルの文字コードがUTF-8であると認識され、ExcelでもUTF-8として読み込みが行われる。

「UTF-8(BOM付き)」に保存し直して文字化けを解消する(1) 「UTF-8(BOM付き)」に保存し直して文字化けを解消する(1)
この画面のように、UTF-8のCSV形式のファイルをExcelで読み込むと、文字化けしてしまう場合がある。これは、UTF-8であることが正しく認識されないためだ。
「UTF-8(BOM付き)」に保存し直して文字化けを解消する(2) 「UTF-8(BOM付き)」に保存し直して文字化けを解消する(2)
「メモ帳」アプリでCSV形式のファイルを開き、[ファイル]−[名前を付けて保存]を選択し、[名前を付けて保存]ダイアログで、「文字コード」のプルダウンリストで[UTF-8(BOM付き)]を選択して上書き保存すればよい。

 上書きしたCSVファイルをExcelに読み込ませると、今度は文字化けせずに表示されるはずだ。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。