• ベストアンサー

【文字コード】コピー&ペースト時に使われる文字コードはShift-jis?

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

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

  • ベストアンサー
  • noocyte
  • ベストアンサー率58% (171/291)
回答No.4

> エディタは、DreamWeaver8とテラパッドなのですが、charmapの「まるA」を > 両者にコピペで貼り付けたところ「・」と「?」に化けてしまいました。 DreamWeaver もテラパッドも使ったことはありませんが, 文字コード表からこれらにコピーした時点で化けたんですか? ならば,それらの内部コードはシフト JIS だということがバレましたね. (クリップブックを使うまでもなく.) ご質問に "UTF-8" とありますから,それらは UTF-8 のファイルを 読み書きできるんでしょうが,内部コードがシフト JIS では, シフト JIS にない文字を読み込み・キー入力・ペーストすると 当然化けますね. > メモ帳は正しく「まるA」に表示されました。 WinXP のメモ帳は,機能は最低限のエディタですが, 内部コードは Unicode なので,「○A」もちゃんと表示されます. (ただし初期状態のフォントでは表示できない文字もあるので,  これも「MS P明朝」などに変更してください.) また,メモ帳の中で「○A」 をコピーすると,クリップブックに正しく 表示されるので,メモ帳は Unicode (CF_UNICODETEXT) でコピーしている ことになります.

takosuke88
質問者

お礼

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

その他の回答 (3)

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.3

#1 です. > charmap にて「○の中にA」というのが見つかりませんでした。 > 一体どうすれば・・ フォントを「MS P明朝」にして U+24B6 (Circled Latin Capital Letter A) です.

takosuke88
質問者

お礼

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

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.2

#1 です. > UTF-8のエディタ→別のUTF-8のエディタで文字化けを起こす場合がある どちらのエディタに問題があるのかは,WinXP についている 「クリップブック」と「文字コード表」で調べられます. (1) コピー側エディタに,シフト JIS にない Unicode 文字を入力してコピーする.   (文字コード表から,例えば「○で囲まれた 'A'」を選択してそのエディタに    ペーストした後,そのエディタでコピーする.) (2) クリップブックのメニューで「表示 → Unicodeテキスト」を選び,   「○A」が正しく表示されているか確認する.   文字化けしていれば,コピー側エディタはシフト JIS で渡していることになる. なお老婆心ながら,クリップブックと文字コード表は,「ファイル名を指定して実行…」 からそれぞれ clipbrd,charmap で起動できます.

takosuke88
質問者

お礼

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

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.1

クリップボードを扱うプログラムを書いたことがないのでよく知りませんが…. クリップボードでテキストを渡す場合,次の形式が定義されています. ・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%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89+CF_TEXT+CF_UNICODETEXT&sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-34,GGGL:ja

takosuke88
質問者

お礼

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

関連するQ&A