• ベストアンサー

ウムラウト文字の表示方法について

いつもお世話になっております。 VB6.0で多言語対応アプリケーションを作成しております。 しかし、ファイルから取得したウムラウト文字コードを TextBox.Textプロパティにセットしても適切に表示できま せん。 次は、入力用TextBoxを作成しIMEをドイツ語にセットし 同様にウムラウト文字を入力しました。そしてTextプロパ ティの文字長をLenしたら、なんと0文字という結果になり ました。 入力したということは目で確認できますが、文字長が0とい うことは、そのTextBoxのプロパティに存在しないデータを そのTextBoxは表示していることになります。 どのようなステップを踏めば正常な結果が得られるのでしょうか。 どうぞ宜しくお願いいたします。 <詳細> -環境- Win2000日本語版SP3 VB6.0 日本語版SP5 -参考ソース- MSDN "Get ステートメントの使用例" -文字コードの取得方法- ウムラウト文字の文字コードはメモ帳で入力後、 UNICODE形式で保存。その後、バイナリエディタ ーでオープンし文字コードを取得 -TextBoxコントロールの設定状況- FontNameを"Tahoma"に変更(それ以外は未変更)

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

過去スレ

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=331814
crm
質問者

お礼

どうもありがとうございます。 遅くなり申し訳ございません。

その他の回答 (1)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.1

えーと、無理です。 ウムラウトがついたアルファベットや、ハートマークなどを使うには、UNICODEという文字セットが必要です。 VBは内部的にUNICODEを使用していますが、表示時はわざわざANSIコード(Shift-JIS)に直してから表示しています。 これを回避する方法はありません。 実際にTextBoxに表示する関数は、SetWindowTextというAPIなのですが、それのUNICODE版であるSetWindowTextW(WindowsNT系のみ)というのを使っても、TextBox自体がANSIコード基準のものを使っているので、かってに変換されてしまいます。 VB.NETではUNICODEが完全に使えます。 また、VC++ 6.0でも _UNICODEを定義すれば、表示部分にUNICODEが使えるかと。 もしくは、ドイツ語版Visual Basicなら表示できるのかもしれませんねぇ・・・。

crm
質問者

お礼

ご丁寧な回答をどうもありがとうございます。 一点確認事があります。 TextBoxコントロールで表示をするのではなく、 RichTextBoxコントロールでも無理ということ ですか。どうぞ宜しくお願いいたします。

関連するQ&A