松尾です。 > > (1) コーディングシステムの扱い > > これについて問題点は理解しているのですが、Emacsのコーディングシステム周 > りの理解が浅くてどうしたらよいのかわかりません。おまけにubuntuをLucidに > アップグレードしてから、aptでemacs21は入らず野良ビルドも成功せずに > Emacs21でのテスト環境がないという、、、
(set-terminal-coding-system 'utf-8)をコメントアウトした上で Debian lennyのEmacs21で emacs -q --no-site-file --load twittering-mode.el として試してみました。 結論から書くとset-terminal-coding-systemで端末に合わせた 設定をしていれば正しく表示されるようです。 以下の組み合わせで確認しました。 ・euc-jpの端末で(set-terminal-coding-system 'euc-jp) ・sjisの端末で(set-terminal-coding-system 'sjis) ・jisの端末で(set-terminal-coding-system 'iso-2022-jp) ・utf-8の端末で(set-terminal-coding-system 'utf-8) LANG=ja_JP.UTF-8とLANG=CのどちらでもOKでした。 但しLANG=Cのときは Coding system for terminal output: nil となるのでset-terminal-coding-systemをするまでは全角文字は 表示できません。 端末の文字コードの設定は各ユーザが選んで、必要であれば set-terminal-coding-systemを呼んでいるはずなので twittering-mode.elからは省いて問題ないと思います。 ただ、utf-8に関してひとつよく分からない挙動もありました。 今回試したEmacs21ではLANG=ja_JP.UTF-8としておくと (set-terminal-coding-system 'utf-8)をする前の時点で Coding system for terminal output: u -- mule-utf-8 (alias: utf-8) となっています。一見utf-8を使ってるように見えるんですが UTF-8の端末上では全角文字が全て「◇」で置き換えられてる みたいに見えます。 (twittering-modeに限らない症状です) 改めて(set-terminal-coding-system 'utf-8)すると正しく表示 されるので、何か違う状態になっているみたいです。 Priority order for recognizing coding systems when reading files: 1. utf-16-le 2. utf-16-be 3. utf-8 優先順位が上のようになってるので、ひょっとするとutf-16に なってたりするのかも。 端末に合わせてset-terminal-coding-systemを呼んでおけば良い 話なので大きな問題にはならないと思います。 --- 松尾 直志 <t...@mymail.twin.jp> ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ twmode-users mailing list twmode-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/twmode-users