連載
» 2021年12月20日 05時00分 公開

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

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

[小林章彦,デジタルアドバンテージ]

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

「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で保存する。

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

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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