• ベストアンサー

ファイルを開いてに読み込みとクリップボード経由との相違点

文字コード VB2008でエディタの作成の勉強をしています。 質問は下記です。  ・このエディタでメモ帳などで作成したファイルを開いて読むと   文字コードの違いで全角文字が文字化けする。  ・しかしクリップボード経由でコピー、貼り付けを行うと文字化   けはおこらない。 VB2008はUnicodeなのでs-jis のファイルを読むと文字化けをするこ とはわかりますが、クリップボード経由ではなぜ文字化けしないの でしょうか。  よろしくお願いします。

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

  • ベストアンサー
回答No.2

標準のエディットコントロールには、文字コードの変換の機能がついてないからでしょう。 そういう場合、開いたファイルをテキストバッファに読み込んでいるだけなので。 そのまま表示されます。 文字コードの変換機能があるエディットコントロールは、ファイルをメモリーストリーム上に読み込み、変換をし、テキストバッファに転送したりなどします。 クリップボードは、クリップボードに入れるときに、 CF_TEXTや、CF_UNICODETEXTを指定することが出来ます。 クリップボードから出すときは、ある程度OSが自動で変換してくれます。CF_UNICODETEXTで入れたものをCF_TEXTで取り出すことも可能です。(化ける可能性もありますが) CF_TEXTの場合、OSのデフォルトの文字コード日本語ならSJISになります。 貼り付けるアプリケーション側が、unicodeに対応していなければ、 CF_TEXTで取り出そうとします。 (Vistaは分かりません)

binm
質問者

お礼

具体的な回答を頂きよくわかりました。 有難うございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

そんなこと聞くまでもなく、違いにソフトが対応しているからだよ。 ただし、どのように仕組みの詳細とか、どうコードを組んでいるかは、通常公開情報では無いので、調べまくらないとわからないが。 後者の部類のことを聞きたいのかもしれないが、知りたくてもとりあえず、辛抱しないとならなくて、将来持続的に質問者がその分野を勉強をして行かないと、判らないものがほとんど。仕組みに関する、専問的な前提となる知識や付随知識がいっぱい必要なものが多い。 ここの専門的な事項の質問コーナーでもないところに、質問しても、回答は無いだろう。本件はそこまでのものではないが。Googleででも「クリップボードとは」「クリップボード 仕組み」などで照会すれば、少しは感じがつかめるかもしれない。 コピーだって、画像には色々なデータ形式のものがある。文字コードもそう。ある場合は貼り付けて元のように見えないでは、一般的な商品の機能にはなりえない。そこで開発者の苦労が有る。それはあえて公開されない。何処かでまずコードの種類の違いを捉えているはず。そして対応するかどうかは、色々な判断が有る。 コンピュタ関連では生物の一部の機能のように自然調整力は無いので、全て作成者が、違うものには、違いを意識させないようなソフト(プログラム)が必要で、それでも、色々なソフトを比べると、バラバラは、どうしても出てくる。メモ帳はテキストに限り、原初的な部分を担当するもので、その後の進歩などは取り入れられて無い面はほとんど。当初コンピュタ処理は文字数字から始まった(色々な意味で文字しか扱えなかった)事を忘れないよう。

binm
質問者

補足

具体的な回答を期待していたのですが、いずれにしても 長文のご意見有難うございました。