掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
IEの特殊文字をricheditに貼り付けるには (ID:12572)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>(例 p蒿=p RichEdit1.text := 'P' + Char($E4) +Char($E4); のことですね。 文字コードとは、機械的には、一個の文字とそれに対応する数字のことです。 それを表にしたものが文字コード表です。 機械は、数字をみて、文字を表示しているだけです。 ですから、上の例で漢字が出るのは、Char($E4) +Char($E4)=蒿であって≠aウムラウトWChar($E4)+WChar($E4)ではありません。 日本のPCでウムラウトWChar($E4)+WChar($E4)が表示できるソフトは内部では1文字=2バイトや特殊記号と組み合わせなど違った状態で保存をしていると思います シフトジスは2バイトで構成され、決められた範囲の1バイトと2バイト目にChar($E4)が該当するので、別の文字となるのです。 シフトジスでないときは、1バイトで文字が構成されるANSIとの混合文字列です。 マルチバイトという特殊な状態です aウムラウトは、 標準で1バイトの日本語の半角カナが当たり前のように表示でき 外国のPCで表示されないのと同じようなことだと思ってください。 機械に埋め込まれたフォントの違いです。 上にもコードで例をだしているのでわかると思いますが シフトジス文字を表す数字とコードがダブルので ユニコード対応のコンポーネント使わない場合は Delphiに限らず要するに自分で専用のフォントに該当する番号を送らないと表示できないってことです。 RichEdit1.text := WChar($E4); ってしても ダメって事です、 =RichEdit1.text := Char($61); // = a Stringに型キャストすると おせっかいで かってに変換されます。 RichEditの内部保存領域にアクセスするには、 ストリーム操作がいり面倒なので ■●さんのリンクの紹介されているユニコード化されたTTntRichEditコンポを インストールして使うと WCharで文字を操作をするので、情報が失われず、表示もしてくれるので 苦労せずに済みます?。 (※使ったことがないので詳しくはしりません)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.