掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
英語環境VBでユニコードファイルを読み込むには (ID:114280)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VB5の文字列は基本的にはUCS-2ですから、元のUnicodeデータがUCS-2なら、 文字コードの変換は不要かと思います。元がUTF-8等なら、変換が必要ですけれども。 > 英語環境であれば、英語で、日本語環境であれば、日本語で文字列を表示する方法が知りたいです。 Unicodeを読み込んだ後、それを表示させる所でつまずいているのでしょうか。 VB5では、文字列は内部的にUnicodeで保持されていますが、だからといって、 VB自体がUnicodeに完全対応しているというわけではありません。たとえば、 元のソースコード自体はANSIベースですし、LabelやTextBox等にしても、 Unicodeには対応していません。 それゆえ、システム規定のコードページに変換できない文字を渡した場合は、 コントロールとのやり取りを行う際に、データが化けてしまう事になります。 となると対処方法は2つで、「変換できない文字は諦める」か、もしくは 「Unicodeのまま表示させる事を考える」か、といった事になるでしょう。 # 英語環境で日本語を表示させる必要が無い場合は前者(または後者)で、逆に、 # 英語環境で日本語を表示させる必要があるなら、後者で対応するとか。 たとえば前者の場合、GetSystemDefaultLangID / GetSystemDefaultLCID API などで、 現在の環境が英語環境か日本語環境かを判断してやり、それに応じて、読み込むべき Unicodeデータファイルを切り替える、といった運用ができるかと思います。 # ただし、あらかじめデータファイルを各国語別に分けておけないのでれば、 # ファイルから読みこんだ文字が日本語なのかどうかを調べる必要があるかも。 一方、後者の場合は、UCS-2形式のデータ自体を、Unicode対応の ActiveXコントロール(たとえばWebBrowser等)に表示させるとか、あるいは、 TextOutW APIでFormやPictureBox等に出力するなどという手があります。 この場合、フォント自体がUnicodeに対応していないと、一部のグリフが 正しく表示できない可能性がありますが、もしも Office をお持ちであれば、 CD-ROM内にある「Arial Unicode MS」というフォント(ARIALUNI.TTF)を使う事で、 Unicode 2.1に収録されている文字全てを利用する事ができます。 # Arial Unicode MS は、字体があまり綺麗では無いのが難点ですが…。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.