こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2007-04-22 10:00:11

QNo.2940513

困ってます

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

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

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

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


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

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

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

投稿日時 - 2007-04-27 01:35:28

お礼

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

投稿日時 - 2007-04-28 00:30:34

ANo.4

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

#1 です.

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

フォントを「MS P明朝」にして U+24B6 (Circled Latin Capital Letter A) です.

投稿日時 - 2007-04-25 01:17:01

お礼

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

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

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

投稿日時 - 2007-04-27 00:33:38

ANo.2

#1 です.

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

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

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

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

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

投稿日時 - 2007-04-22 17:56:02

お礼

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

投稿日時 - 2007-04-25 00:58:32

ANo.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

投稿日時 - 2007-04-22 15:42:56

お礼

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

投稿日時 - 2007-04-22 17:17:59

あなたにオススメの質問