[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:1865]tis620 合成文字 with decode-coding-string(Mule 4.1)



白井です。

現実逃避的に tis620 の合成文字の実験をしていて気付いたことがあり
ます。

# タイ語はまったく書けないし、読めないので、etc/HELLO から yank
# して結果を画像として認識しているだけです。:-)

最近の Mew で上記の HELLO のタイ語の部分を subject や body に書
き、base64 で符号化して送信すると(ただし、TAB は削除)、

Subject: Thai =?tis-620?B?KMDSydLkt8IpysfRyrTVpMPRuiwgysfRyrTVpOjQ?=
body: VGhhaSAowNLJ0uS3winKx9HKtNWkw9G6LCDKx9HKtNWk6NANCg==

という文字列になりました。しかし、そのメールを読んだときの Mew
の decode 結果が腑に落ちなかったので、

○ 実験1
(insert	
 (decode-coding-string
  (base64-decode-string "VGhhaSAowNLJ0uS3winKx9HKtNWkw9G6LCDKx9HKtNWk6NANCg==")
 'tis-620))

○ 実験2
(let ((str "VGhhaSAowNLJ0uS3winKx9HKtNWkw9G6LCDKx9HKtNWk6NANCg=="))
  (with-temp-buffer
    (insert str)
    (base64-decode-region (point-min) (point-max))
    (decode-coding-region (point-min) (point-max) 'tis-620)
    (setq str (buffer-substring (point-min) (point-max))))
  (insert str))

○ 実験3
(let ((str "VGhhaSAowNLJ0uS3winKx9HKtNWkw9G6LCDKx9HKtNWk6NANCg=="))
  (with-temp-buffer
    (set-buffer-multibyte nil)
    (insert (base64-decode-string str))
    (set-buffer-multibyte t)
    (decode-coding-region (point-min) (point-max) 'tis-620)
    (setq str (buffer-substring (point-min) (point-max))))
  (insert str))

のそれぞれを下記の手持ちの Emacs で実験してみました。

組み合わせ1: Emacs 20.7 + Mule 4.1 + Mule-UCS 0.82
組み合わせ2: Emacs 20.7 + Mule 4.1 + Mule-UCS なし
組み合わせ3: Meadow 1.13b1 (Emacs 20.6 + Mule 4.1) + Mule-UCS 0.82
組み合わせ4: Emacs 20.7 + Mule 4.0
組み合わせ5: Emacs 20.6 + Mule 4.0
組み合わせ6: Emacs 19.28 + Mule 2.3 

その結果、『組み合わせ1, 2, 3 + 実験1』だけ出力文字が合成されま
せんでした。残りの組み合わせでは、すべて、HELLO を見たときのよう
に合成されます。

まとめてみると、Mule 4.1 の decode-coding-string() だけ tis620
の合成文字の処理が行なわれていないような感じです。

(当然ですが)普段一切タイ語は使わないので、私が間違っている可能性
も高いですけど、Mule 4.1 のバグの可能性も高いんじゃないかと思い
ます。

## 既知の問題 or 仕様(ってことはないと思うけど)ならごめんなさい
## ね。

### mule2.3 で符号化すると合成印(?)も一緒に符号化されるのね。
### 
### VGhhaSAowNLJ0uS3winKGzDH0RsxyhswtNUbMaQbMMPRGzG6LCDKGzDH0RsxyhswtNUbMR
### swpOgbMdANCg==
### 
### になって、これなら、全部の組み合わせで合成文字になりました。

うまく言葉で伝わるかわからんので "組み合わせ1" での結果を

http://www.netlaputa.ne.jp/~hshirai/Image/test.png

においておきますのでご覧下さいませ。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)