- ベストアンサー
ウムラウト文字の表示方法について
いつもお世話になっております。 VB6.0で多言語対応アプリケーションを作成しております。 しかし、ファイルから取得したウムラウト文字コードを TextBox.Textプロパティにセットしても適切に表示できま せん。 次は、入力用TextBoxを作成しIMEをドイツ語にセットし 同様にウムラウト文字を入力しました。そしてTextプロパ ティの文字長をLenしたら、なんと0文字という結果になり ました。 入力したということは目で確認できますが、文字長が0とい うことは、そのTextBoxのプロパティに存在しないデータを そのTextBoxは表示していることになります。 どのようなステップを踏めば正常な結果が得られるのでしょうか。 どうぞ宜しくお願いいたします。 <詳細> -環境- Win2000日本語版SP3 VB6.0 日本語版SP5 -参考ソース- MSDN "Get ステートメントの使用例" -文字コードの取得方法- ウムラウト文字の文字コードはメモ帳で入力後、 UNICODE形式で保存。その後、バイナリエディタ ーでオープンし文字コードを取得 -TextBoxコントロールの設定状況- FontNameを"Tahoma"に変更(それ以外は未変更)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
過去スレ
その他の回答 (1)
- haporun
- ベストアンサー率40% (230/562)
えーと、無理です。 ウムラウトがついたアルファベットや、ハートマークなどを使うには、UNICODEという文字セットが必要です。 VBは内部的にUNICODEを使用していますが、表示時はわざわざANSIコード(Shift-JIS)に直してから表示しています。 これを回避する方法はありません。 実際にTextBoxに表示する関数は、SetWindowTextというAPIなのですが、それのUNICODE版であるSetWindowTextW(WindowsNT系のみ)というのを使っても、TextBox自体がANSIコード基準のものを使っているので、かってに変換されてしまいます。 VB.NETではUNICODEが完全に使えます。 また、VC++ 6.0でも _UNICODEを定義すれば、表示部分にUNICODEが使えるかと。 もしくは、ドイツ語版Visual Basicなら表示できるのかもしれませんねぇ・・・。
お礼
ご丁寧な回答をどうもありがとうございます。 一点確認事があります。 TextBoxコントロールで表示をするのではなく、 RichTextBoxコントロールでも無理ということ ですか。どうぞ宜しくお願いいたします。
お礼
どうもありがとうございます。 遅くなり申し訳ございません。