プロが教える店舗&オフィスのセキュリティ対策術

Win-XP使用者です。
最近文字コードについて勉強しているのですがよくわからないことがあります。
いわゆる「コピペ」にて文字を移動させる場合、その文字はどのような扱いなのかという問題です。
はじめは「UTF-8」なら「UTF-8」のまんまコピーされるのかと思っていましたが、実は「Shift-jis」に変換されてコピーされてはいないかと疑っています。
よくわかっていないので的外れな質問かもしれませんが、解説できる方、よろしくお願いいたします。

A 回答 (4件)

クリップボードを扱うプログラムを書いたことがないのでよく知りませんが….



クリップボードでテキストを渡す場合,次の形式が定義されています.

・CF_TEXT (シフトJIS?)
・CF_UNICODETEXT (UTF-16(LE))
 (Windows が内部で扱う Unicode は,UTF-8 ではなく UTF-16(LE) です.)

(なお,これら以外に CF_OEMTEXT というのもあります.)

なので,シフト JIS / UTF-16LE のどちらででも渡される可能性があると思います.
あとは,カット/コピー側アプリケーションがどちらで渡しているか,
ペースト側アプリケーションが両方に対応しているか否かの問題でしょう.


「クリップボード CF_TEXT CF_UNICODETEXT」で検索
http://www.google.co.jp/search?q=%E3%82%AF%E3%83 …
    • good
    • 0
この回答へのお礼

なるほど。やはりそのままの文字コードで飛んでくわけではないのですね。
この辺は目に見えないものだけに厄介です。
UTF-8のエディタ→別のUTF-8のエディタ
で文字化けを起こす場合があるのでおかしいな~と思っていました。
ありがとうございました。

お礼日時:2007/04/22 17:17

#1 です.



> UTF-8のエディタ→別のUTF-8のエディタで文字化けを起こす場合がある

どちらのエディタに問題があるのかは,WinXP についている
「クリップブック」と「文字コード表」で調べられます.

(1) コピー側エディタに,シフト JIS にない Unicode 文字を入力してコピーする.
  (文字コード表から,例えば「○で囲まれた 'A'」を選択してそのエディタに
   ペーストした後,そのエディタでコピーする.)

(2) クリップブックのメニューで「表示 → Unicodeテキスト」を選び,
  「○A」が正しく表示されているか確認する.
  文字化けしていれば,コピー側エディタはシフト JIS で渡していることになる.

なお老婆心ながら,クリップブックと文字コード表は,「ファイル名を指定して実行…」
からそれぞれ clipbrd,charmap で起動できます.
    • good
    • 0
この回答へのお礼

ありがとうございます。
しかしながら
charmap にて「○の中にA」というのが見つかりませんでした。
一体どうすれば・・

お礼日時:2007/04/25 00:58

#1 です.



> charmap にて「○の中にA」というのが見つかりませんでした。
> 一体どうすれば・・

フォントを「MS P明朝」にして U+24B6 (Circled Latin Capital Letter A) です.
    • good
    • 0
この回答へのお礼

なるほど!ありがとうございます。
「まるA」はcharmapに表示されました。

エディタは、DreamWeaver8とテラパッドなのですが、charmapの「まるA」を両者にコピペで貼り付けたところ「・」と「?」に化けてしまいました。メモ帳は正しく「まるA」に表示されました。

これはどう解釈すればいいのでしょうか?

お礼日時:2007/04/27 00:33

> エディタは、DreamWeaver8とテラパッドなのですが、charmapの「まるA」を


> 両者にコピペで貼り付けたところ「・」と「?」に化けてしまいました。

DreamWeaver もテラパッドも使ったことはありませんが,
文字コード表からこれらにコピーした時点で化けたんですか?
ならば,それらの内部コードはシフト JIS だということがバレましたね.
(クリップブックを使うまでもなく.)

ご質問に "UTF-8" とありますから,それらは UTF-8 のファイルを
読み書きできるんでしょうが,内部コードがシフト JIS では,
シフト JIS にない文字を読み込み・キー入力・ペーストすると
当然化けますね.


> メモ帳は正しく「まるA」に表示されました。

WinXP のメモ帳は,機能は最低限のエディタですが,
内部コードは Unicode なので,「○A」もちゃんと表示されます.
(ただし初期状態のフォントでは表示できない文字もあるので,
 これも「MS P明朝」などに変更してください.)

また,メモ帳の中で「○A」 をコピーすると,クリップブックに正しく
表示されるので,メモ帳は Unicode (CF_UNICODETEXT) でコピーしている
ことになります.
    • good
    • 1
この回答へのお礼

なんと!メモ帳はShift_JISだと思って馬鹿にしていたのにベースがUTF-8だったなんて!
上記の方法ですべてのソフトの内部コードが判明するってことでしょうかね。実にありがたい。
ありがとうございました。

お礼日時:2007/04/28 00:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!