

"GNU Emacs 24.4.1 (i686-pc-cygwin) of 2015-02-01 on gnupack"を使っています。  
UTF-8などUnicode系の文字コードからCP932に変換する時に、波ダッシュ(U+301C)が変換できません。

CP932の波ダッシュ(0x8160)がUnicodeの全角チルダ(U+FF5E)に変換されるのは、Windowsを使っている限り受け入れるしかないとしても、Unicodeの波ダッシュ(U+301C)がCP932の波ダッシュ(0x8160)に変換されないのは不便だと思いました。

Unicodeの波ダッシュ(U+301C)をCP932の波ダッシュ(0x8160)に変換するように設定するには、どうすれば良いでしょうか？

＃ググるとcoding-system-putで:decode-translation-
tableを書き換えればできそうと思ったのですが、Emacs内部での文字コードの扱い方もEmacs Lispもわからないので…


CC BY-SA 3.0
2015-03-08T06:25:30.923
7602
2015-03-08T17:05:09.750
7291
question
emacs
Unicode→CP932変換時にU+301Cを0x8160に変換するには？


以下、heliac2001さんの回答＋自分の補足をまとめました。

[code]

    ;; Unicode（内部コード）→CP932変換時に波ダッシュ(U+301C)を波ダッシュ(0x8160)に変換するよう設定する。
    ;; 波ダッシュと同様の変換問題のある文字も変わる。
    ;; 対象文字は、"lisp/language/japanese.el"で定義されている
    ;; japanese-ucs-jis-to-cp932-mapを参照。
    (coding-system-put 'cp932 :encode-translation-table
                       (get 'japanese-ucs-jis-to-cp932-map 'translation-table))
    
[/code]


CC BY-SA 3.0
2015-03-08T17:05:09.750
7626
2015-03-08T17:05:09.750
7291
7602
answer