タグ: UTF-8
皆さん、こんにちは。 QA通信編集員です。
いやぁ、ホント寒いですねぇ。 まぁ、すでに関東近郊に出てきてからの方が
さて、本日は、CSVファイルの文字コード判定して、
以前、このブログの中で、UTF-8形式のCSVファイルをダブルクリックして開くと、 (興味のある方は、こちらから)
...が、このひと手間が面倒に感じることもありますよね?
というのも、とあるシステムから出力されるCSVファイルが、
品質管理を行うときに、 これらのシステムの多くが海外のモノなので、 まぁ、当然と言えば、当然ですけどね...
するってーと、
...ということで、 そのひと手間を減らすことが出来れば良いなぁ...と考えたりする訳です。
そこで、Excelのマクロ機能を使って、
で、ネット上で、 ...と、ググってみると...、 次のようなコードを見つけることが出来ると思います。
簡単に説明すると… 対象となっているファイルを、HTMLファイルとしてオープンして、
HKEY_CLASSES_ROOT\MIME\Database\Charset
まぁ、どんな文字コードがあるのかというのは、
もちろん、この方法でも、大抵の場合は、うまくいきますので、 ただ、この方法は、Internet Explorerなどのブラウザでファイルを開いたときと同様に、 具体的には、 「あれっ、正しく認識してくれないや」と思ったら、
オススメの方法としては、 ...が、さすがに、別プログラムのソースコードから まぁ、そこまで手間をかけるのも大変だという方には、
NonSoft - 文字コード判定のサンプル(VB6) http://homepage2.nifty.com/nonnon/SoftSample/SampleModJUDG.html
こちらのサンプルコードでは、
また、精度としても、かなり高いと思います。 ボクが使っている範囲だけですけど、 ...しかし、このサイトのように、有用な情報を出して貰えると、
...とまぁ、今回は、他人のコードでのお話をしてしまいましたが、
あっ、そうそう、文字コード判定だけしても、 ...ということで、最後に、
ここでは、ファイルに上書きをしてしまっていますが、
大事なことを忘れていたので、追記しておきます。
サンプルのコードの中で、ADODB.Streamを利用して、 いくつかバージョンもありますので、
では。
|
|||||||||
| コメント | 0 | ヒット: 885 |
こんにちは。
QA通信編集員です。
今朝、テレビの情報番組の中で、「チンパンジーにも助け合いの心があるのが実験で分かった」というニュースが流れていました。ボックスの中にチンパンジーを入れて、それぞれのボックスの前には、ジュースとステッキを置くという実験で、ボックス前にジュースがあるチンパンジーが「取って!」みたいな仕草をすると、ボックス前にステッキがあるチンパンジーが取ってあげていました。 その実験の前に、お互いのチンパンジーが、交互に手伝うと両方ともジュースを飲めたって実験もやっていた訳なので、「本当に助け合いか?何か貰えると思ったんじゃね?」とか、「野生でもやるのか?」とか疑問は残りますが...。まぁ、無償の助け合いらしいです。
私も日々悩んで、周りの人に助けられっぱなしなので、そのうち何か恩返し出来ればと思います。
さて...、今回は、前々回の記事で、CSVファイルのインポート処理のネタを書きましたが、その後、質問などもあったので、補足しておこうかと...。
タイトルのとおり、UTF-8形式のテキストファイル(CSVファイルやTXTファイル)をエクセルで読み込むと文字化けしてしまいます。 このため、前々回の記事のCSVファイルのインポート処理の関数を使っても、文字化けしてしまいます。 http://support.microsoft.com/kb/821863/ja これは、Excel の仕様に基づく制限事項となっているので、バグでは無いらしいんですけどね...。 しかし、データベースからの出力のときに、UTF-8での出力というのも多いので、何とかして欲しいというのが、皆さんの本音ではないでしょうか?少なくても私は、直してほしいですねぇ。
このネタは、結構有名なのですが、それでも、たまに問い合わせを受けます。
対処方法は、ぜんぜん簡単です。 エディター(文字コードを変更出来る必要があります)を使って、一旦、ファイルを開き、SHIFT-JIS形式に変換後、ファイルを保存すれば、その後は、エクセルで開くことが出来ます。要は、UTF-8形式の文字コードを、SHIFT-JIS形式の文字コードに変換すれば大丈夫ということですね。 で、せっかくならば、文字コード変換するコードを追加した方が楽ですよね?
ということで、もう少しすると、このコードを変更すると思いますので、そのときに、UTF-8の文字コード読み込みと、変換処理を行うコードを追加したものを作ってみたいと思いますので、そのときには、改めてお話をさせてもらえればと思います。
|
|||||||
| コメント | 0 | ヒット: 5172 |



