掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBで管理されているUnicodeとは? (ID:111674)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ということは、TextBoxに文字列を表示する時には「Unicode→シフトJIS」に変換された後に表示されているのでしょうか? 日本語環境においては、そういう事になりますね。 > VBはどこまでUnicodeで文字列を持っているのかが、いまいち良く分からない状態です。 String型の中身は基本的にUnicode(UTS-2)です。 MidやReplaceといった文字列処理関数も、引数が「Unicode形式の文字列」であるという前提で処理されます。 ただし、入出力の際には、基本的にANSIで行われます。 (例えば、Print #ステートメントやMsgBox関数は「Unicode形式の文字列」を受け取りますが、出力結果はANSIです) それと、コントロールの対応についてですが…。 そもそも、Win9X系のOSはUnicode版のTextBox (EditBox Window)を作れないようです。 そうした事情もあって、全ての「標準コントロール」は、ANSIバージョンが使われています。 一方「ActiveXコントロール」は、「常にANSIで動作する」コントロールもありますし、 DBGridのように「Win9X系ではANSIで動作、NT系ではUnicodeで処理」というコントロールや、 WebBrowserのように「常にUnicodeで処理」というコントロールなどもあります。 ちなみに、MSForms の TextBox をフォームに貼り、右クリックの[編集]して、直接 Unicode 文字(例えば、"立方メートル" の記号など)を入力すると、コントロール上には表示されるものの、(プロパティウィンドウの)Valueプロパティの項は、"??"と化けて表示されます。 ただしそれは、プロパティウィンドウに表示できないというだけであり、データとしてはUnicodeになっているので、バイト配列に格納したり、AscW関数で調べたりすれば、正しい文字コードが格納されている事を確認できます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.