【Excel】UTF-8形式のCSVファイルやTXTファイルはエクセルで文字化けします
こんにちは。
QA通信編集員です。
今朝、テレビの情報番組の中で、「チンパンジーにも助け合いの心があるのが実験で分かった」というニュースが流れていました。ボックスの中にチンパンジーを入れて、それぞれのボックスの前には、ジュースとステッキを置くという実験で、ボックス前にジュースがあるチンパンジーが「取って!」みたいな仕草をすると、ボックス前にステッキがあるチンパンジーが取ってあげていました。
その実験の前に、お互いのチンパンジーが、交互に手伝うと両方ともジュースを飲めたって実験もやっていた訳なので、「本当に助け合いか?何か貰えると思ったんじゃね?」とか、「野生でもやるのか?」とか疑問は残りますが...。まぁ、無償の助け合いらしいです。
私も日々悩んで、周りの人に助けられっぱなしなので、そのうち何か恩返し出来ればと思います。
もう少し時間はかかりそうですが...。
さて...、今回は、前々回の記事で、CSVファイルのインポート処理のネタを書きましたが、その後、質問などもあったので、補足しておこうかと...。
タイトルのとおり、UTF-8形式のテキストファイル(CSVファイルやTXTファイル)をエクセルで読み込むと文字化けしてしまいます。
このため、前々回の記事のCSVファイルのインポート処理の関数を使っても、文字化けしてしまいます。
Microsoftのサイトにも、以下のような記事があります。
http://support.microsoft.com/kb/821863/ja
これは、Excel の仕様に基づく制限事項となっているので、バグでは無いらしいんですけどね...。
しかし、データベースからの出力のときに、UTF-8での出力というのも多いので、何とかして欲しいというのが、皆さんの本音ではないでしょうか?少なくても私は、直してほしいですねぇ。
このネタは、結構有名なのですが、それでも、たまに問い合わせを受けます。
対処方法は、ぜんぜん簡単です。
エディター(文字コードを変更出来る必要があります)を使って、一旦、ファイルを開き、SHIFT-JIS形式に変換後、ファイルを保存すれば、その後は、エクセルで開くことが出来ます。要は、UTF-8形式の文字コードを、SHIFT-JIS形式の文字コードに変換すれば大丈夫ということですね。
で、せっかくならば、文字コード変換するコードを追加した方が楽ですよね?
ということで、もう少しすると、このコードを変更すると思いますので、そのときに、UTF-8の文字コード読み込みと、変換処理を行うコードを追加したものを作ってみたいと思いますので、そのときには、改めてお話をさせてもらえればと思います。