Tech Racho エンジニアの「?」を「!」に。
  • IT Tips

ExcelでCSV保存したときに半角スペースがはてな(?)に文字化けする

ExcelからCSV形式で保存するには、「名前を付けて保存」ダイアログでCSV(カンマ区切り)を選択すればOKです。

#エクスポートしたいところですが、保存しかできないようですね。連続でやるときにはすごく不便。

ところが、これをやると、文字化けが発生してしまうことがあります。

現象

半角スペースが含まれるExcelファイルで、Excel上で見るぶんには問題ないのですが、これをCSVエクスポートすると、1行目だけ文字化けします。
test

見た目は同じだけど上だけ文字化けする

見た目は同じだけど上だけ文字化けする

原因

これは、同じ半角スペースに見えても「CODE=32(0x20)」の「半角スペース」と、「CODE=160(0xA0)」の「NBSP」があるのが原因になっています。

0xA0のNBSPはShift-JISでは表現できないので、保存時に「?」に文字化けしてしまいます。

解決方法

これを解消するには、160のNBSPを32の半角スペースに一括置換すれば良いです。

  1. 適当なセルに「=CHAR(160)」という数式を入力して、その結果をコピーします。
charcode=160の文字を作成

charcode=160の文字を作成

  1. その後、Ctrl+Fの「置換」から、検索対象にコピーした内容をペースト、置換後の文字に普通の半角スペースを入力して、「すべて置換」すればOKです。
置換

置換

これで、見た目は変わらないけど文字化けしないExcelファイルができました。

というか、普通に使っていればこんな問題は起きないんですが、なぜか送られてきたExcelがこんなことになっていて・・・
先方はどんな使い方をしていたんでしょうね?


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。