VB2005で漢字を表示する時の留意点

VB6,VBA,VBS,EXCEL,DOS,BAT,WSH,WORDの小技メモ

HTML/ CSS/ CGI-Perl/ JavaScript/ JavaApplet/ AccessUp/ Internet/ EnglishLearn/ ちゃいちゃん天使/ 天使メッセージ/ 飯田ワールド/ 結城ワールド/ プロフィール/ WEB相談室/ WEBアンテナ/ 燈明日記/ Perlノート/ 漢字起源/ yahoo

はじめに

本ページは、ウインドウズ系全般のティプスメモです。

そう、はじめはVB系のティプスメモだったのですが…いつの間にか、ウインドウズ系全般のティプスメモになってしまいました。

ちなみに、ティプス(Tips)とは、マニュアルに書かれていない技法や裏わざのことですが、本ページでは、私が経験してこれはと思ったノウハウのメモになっています。

尚、以下は本サイトの最新情報(ブログ)です。

それでは、本ページが何かのお役に立てれば幸いです。ごゆっくりご覧ください。

2010-01-09 VB2005で漢字を表示する時の留意点

WINDOWS(VB2005)の内部コードは、UTF-16のBOM無しリトルエンディアンです(参照)。

テキストファイルのコードは、以下の3つが主流です。

上記の3つのコードは、制御コードと英数字は、同じ値のコードです。

違うのは、基本的に漢字の部分のコードなのです。


たとえば、ファイルを読み込んでWINDOWSで表示するには、この3つのコードからUTF-16に変換してあげないとなりません。

その時に、テキストファイルのコードと違うコードでUTF-16に変換すると当然、漢字は化けますね。


しかし、実は漢字コードの部分だけでなく、英数字コードや制御コード(改行コード等)の部分も化けてしまうのです。

これは、UTF-16ではサロゲートペアがあり、それにたまたまマッチしてしまう場合に、バイト数がずれて、英数字や制御コード(改行コード等)が化けるとか。

また、UTF-8では3バイトで漢字を表しますが、これを2バイト漢字コードのEUC指定やSJIS指定でUTF-16に変換すると、バイト数がずれてしまう場合などなど…。


まぁ、テキストファイルのコードを誤って、違うコードでUTF-16に変換する時点でNGなのですが…とりありず留意点です。

おわりに

以下のページには、すべてのTIPSがあります。もしよろしければ、どうぞ!

尚、ご感想、ご意見、誤字、脱字、間違い等がありましたら遠慮なくVB-TIPS掲示板へご指摘ください。

人のよいところをどんどん見つけよう