re 6 x 3: 「神(示申)」と「神」

rok さんありがとうございます。

Firefox は Pasteboard Manager じゃなくて旧式の Scrap Manager を使っています。で、Firefoxソースコードを眺めていると、nsClipboard::SetNativeClipboardData 関数内で、

  1. PutScrapFlavor(..., 'utxt', ...);
  2. PutScrapFlavor(..., 'TEXT', ...);
  3. PutScrapFlavor(..., 'styl', ...);

と、順に UTF8, Shift_JIS (OS の言語設定が日本語の場合) の順でクリップボードにデータを積んでいる。じゃあこのデータを取る場合どう書くか、という話ですが、古いアプリケーションだと、普通は、

GetScrapFlavor(..., 'TEXT', ...);

Shift_JIS として読み込むと思います。これはしょうがない。一方、Pasteboard を使う新しいアプリケーションの場合も、(rok さんと異なり) 手元の環境では 'TEXT' が参照されるのか、「ネ申」が返ってきます。

$ ./pbdutil -lvv
Available type(s):
        text (NSStringPboardType) (size: 3 bytes)
$ ./pbdutil -r text | od -t x1
0000000    e7  a5  9e                                                    
0000003

問題がどこにあるかは、デバッガで追っていないので把握できていないのですが、こちらで観測している現象としては以上のとおりです。