[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:1865]tis620 合成文字 with decode-coding-string(Mule 4.1)
- X-ml-count: 1865
- Subject: [MD:1865]tis620 合成文字 with decode-coding-string(Mule 4.1)
- From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxxxxxxxxxx>
- Date: Wed, 08 Nov 2000 14:07:39 +0900 (JST)
- X-mailer: Mew version 1.95b76 on Emacs 20.7 / 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)