[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

full-width symbols



お久しぶりです.最近,本業超多忙につき,なかなか貢献できなくてすみません.

最近,別件で事情があって Emacs22 から Mule-UCS を抜いた環境で作業していま
す.すると,emacs-w3m で,日本語の全角の記号文字(○△×など)を含む WiKi
ページを編集すると,妙な変換をしてくれるので困っています.

例を,http://namazu.org/~tsuchiya/wiliki/ に用意しましたが,全角の○△×
が,半角の○△×に変換されてしまうのです.文字の表示に使われるグリフが変
わってしまうだけなら,それでも良かったのですが,どこかで文字コードも変わっ
てしまっているようで,正しく書き込むことも出来ません.

より詳しく書くと,元々 euc-jp で書かれていたページで

  character: ○ (53499, #o150373, #xd0fb, U+25CB)
    charset: japanese-jisx0208 (JISX0208.1983/1990 Japanese Kanji: ISO-IR-87.)
 code point: #x21 #x7B
     syntax: _ 	which means: symbol
   category: j:Japanese |:While filling, we can break a line at this character.
buffer code: #x92 #xA1 #xFB
  file code: ESC #x24 #x42 #x21 #x7B (encoded by coding system iso-2022-7bit)
    display: by this font (glyph code)
     -Shinonome-Gothic-Medium-R-Normal--16-150-75-75-C-160-JISX0208.1990-0 (#x217B)

で送られてきた文字が,

  character: ○ (299307, #o1110453, #x4912b, U+25CB)
    charset: mule-unicode-2500-33ff (Unicode characters of the range U+2500..U+33FF.)
 code point: #x22 #x2B
     syntax: w 	which means: word
buffer code: #x9C #xF2 #xA2 #xAB
  file code: not encodable by coding system euc-jp
    display: by this font (glyph code)
     -Efont-Biwidth-Medium-R-Normal--16-160-75-75-P-80-ISO10646-1 (#x25CB)

に化けて処理され,これをサーバ側に送り返そうとしても,この文字は euc-jp
でエンコードできないので,w3m-form-coding-system-accept-region-p() によっ
て文句を言われる,という状況にはまっているようです.

と,ここまで書いたところで,過去メールを読み返したら,[emacs-w3m:06662]
からのスレッドで議論した結果,[emacs-w3m:06674] に既に結論が書いてありま
した.

>> On Tue, 20 Apr 2004 17:52:57 +0900
>> 「土」== tsuchiya@xxxxxxxxxx (TSUCHIYA Masatoshi) said as follows:

土> もちろん,Mule-UCS の設定でなんとかできるのだろうとは思います.しかし,
土> 本質的には,コード変換はなるべく避けて通るのが正しい道のような気がし
土> てきました.

土> と言うわけで,将来の emacs-w3m-1.5 で w3m-0.5 / w3m-m17n / w3mmee を使っ
土> ている場合には,w3m-input-coding-system / w3m-output-coding-system は
土> ページの文字コードと連動するようにして,文字コードの変換をなるべく行わ
土> ないように変更しましょう.

しかるに,何故この変更が行われていないかというと‥‥ [emacs-w3m:06701] が
未採用だから,のようですね.

;; 今から採用されても,[emacs-w3m:06674] を実現できるだけの時間がとれるか
;; どうかがまた大問題.

うーん困った.結局,現実装だと,どうしても一度は UTF-8 に変換されてしまう.
そのため,UTF-8 ←→ EUC-JP の往復変換ができない文字はおかしくなる,とい
うことですか.

Emacs22 の設定の方をいじって何とか逃げることは可能でしょうか? どなたかお
知恵を貸して頂けませんか?

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )