Nozomu Ando
nand****@mac*****
2006年 1月 7日 (土) 21:37:54 JST
Seiji Zenitani <zenit****@gmail*****> writes: > 1)表示の問題 > -DUSE_ATSUI で解決するはず。 すみません、-DUSE_ATSUI であっても、fonset の設定次第でした。 -DUSE_ATSUI は直接関係ありません。 charset を意図通りにできれば、表示も意図通りになると思いますので、 考えなくても良いかと思います。 > 2)sjis/euc での保存の問題 > 原因は、例えば UTF-8 のギリシャ文字が > jisx0208 ではなく、iso-8859-7 にマッピングされること。 > 日本語環境での便を考えると該当文字を JIS 文字に変換すると良い。 selection-coding-system をiso-2022-jp にする、という方法もありました。 2006-01-06 の CVS HEAD / Carbon の -q 起動後 (set-language-environment "Japanese") 実行後の振舞に関してまとめます。 クリップボードに UTF-16 のデータが存在する、という前提で、yank した時の 振舞です (コード変換に OS 由来のルーチンも使っているからこうなるのであって、 Carbon 版特有の振舞と思います): selection-coding-system == utf-8 の場合: バックスラッシュ (U+005c) が ascii のバックスラッシュ (0x5c) に、 円記号 (U+00A5) が latin-iso8859-1 の円記号 (0x25 (0xa5)) に変換される。 ギリシャ、キリル文字、円囲み数字は mule-unicode-0100-24ff になる。 selection-coding-system == sjis の場合: バックスラッシュ (U+005c) が jisx0208 のバックスラッシュ (0x2140) に、 円記号 (U+00A5) が ascii のバックスラッシュ (0x5c) に変換される。 ギリシャ、キリル文字は jisx0208 となる 円囲み数字は mule-unicode-0100-24ff になる (sjis の範囲外) ただし、クリップボードに sjis に対応付けられない文字が1文字でも存在する と、(文字列全体を sjis に変換しようとして失敗するので、) selection-coding-system を utf-8 にした時と同じ結果になる。 selection-coding-system == iso-2022-jp の場合: バックスラッシュ (U+005c) が ascii のバックスラッシュ (0x5c) に、 円記号 (U+00A5) が latin-jisx0201 の円記号 (0x5c) に変換される。 ギリシャ、キリル文字は jisx0208 となる。 円囲み数字は jisx0208 になる (ただし code point は MacJapanese のそれであり、Windows や jisx0213 のそれとは異なる) ただし、クリップボードに iso-2022-jp に対応付けられない文字が1文字でも 存在すると、selection-coding-system を utf-8 にした時と同じ結果になる。 なお、Emacs で kill して他のアプリケーションで paste した場合の振舞です が、特筆すべきは、jisx0208 の円囲み数字がすべて <?> (U+FFFD) になります。 unicode への変換テーブルに存在しないためです。 [Macemacsjp-users 870] のように変換テーブル書き換えれば大丈夫ですが... ええと、個人的には、自分でビルドしたバイナリで、デフォルトの selection-coding-system == mac-roman (ほぼ utf-8 と同じ振舞のはず) で不便を感じていないので、とくにどうすべき、ということに関しては私は何も言 うことはありません。済みません。 --- Nozomu Ando