[Mew-dist 1915] Re: can't guess charset
Mito
mit at example.com
1997年 9月 8日 (月) 17:22:08 JST
※ "山" こと Kazu at example.com さんの
『[Mew-dist 1904] Re: can't guess charset』からの引用です。
山> > * 半角カナでも guess できるべきななのか
山>
山> そもそも、配送するための規格がありませんし。
山>
山> また、RFC 1468(ISO 2022 JP)の改定版では、ISO 2022 JP は ISO 2022 に従っ
山> ていないと明記する予定ですが、それでも半角カナは ISO 2022 の重複符号化禁
山> 止の規則に反しており嫌です。
山>
山> また、多言語に対応できる(ISO 2022 JP2 のような) charset を提案する予定で
山> すが、GR (8bit 空間)には ISO 8859 1 だけを割り当てたいと考えているので、
山> やっぱり 1 バイトカナは嫌です。
う〜ん。
これは guess 自体やらないほうがいいということですよね。
(半角カナが存在した場合、charset は不明(nil)のままにすると。)
山> > * guess できなかった場合はどういう風に対応すればいいのか
山>
山> エラーを出して、ユーザに修正を求めるようにするべきでしょうね。
現状では mew-encode-text-magic でエラーにすると、「----」が
削除されたままになっておかしな状態になってしまいます。
こんなことに力をいれてもしょうがないので、エラーにはせずに、
charset は us-ascii にし、guess できかかったというメッセージ
を表示するようにしました。
ちなみに、半角カナは自分で入力したわけでなく、他の人のメール
を引用したら勝手に挿入されてきてしまったものです。
半角カナの「。」はパっと見た感じおかしくないので、しばらく原
因が分りませんでした。
ということで、やっぱり半角カナ→JIX X 0208 変換が必要だなと
思いますので、jisx0201.el から必要な部分を抜きだして、guess
する前に変換するようにしてみました。
(add-hook 'mew-init-hook
'(lambda ()
(load-library "mew-jisx0201")
(setq mew-convert-jisx0201katakana t)))
のように .emacs で指定し mew-jisx0201.el を適当な場所に置い
ておけば変換すると思います。
やっぱりこんなのは不要でしょうか?
--
9/8 17:17頃
NECソフトウェア新潟 水戸
mailto:mit at example.com
-------------- next part --------------
--- mew-encode.el 1997/09/05 12:06:12 1.1
+++ mew-encode.el 1997/09/08 07:39:35
@@ -148,6 +148,8 @@
(cdr (mew-assoc-match cte mew-prog-mime-encode-text-switch 0))
)
+(defvar mew-convert-jisx0201katakana nil)
+
(defun mew-encode-text-magic (infile ctl cte)
;; return (file charset cte encopts)
;; If infile is 't', target is buffered.
@@ -169,6 +171,11 @@
(insert-file-contents infile)
)
)
+ ;; check katakana-jisx0201 Katakana and convert to japanese-jisx0208
+ (if (and mew-convert-jisx0201katakana
+ (fboundp 'mew-zenkaku-katakana-region))
+ (mew-zenkaku-katakana-region (point) (point-max)))
+
;; Target is now certainly bufferd.
;; Let's guess charset if not specified. The charset of CoverPage
;; for just singlepart(buffered) is always guessed.
@@ -177,6 +184,13 @@
;; charset is guessed as ISO-8859-1.
(if (null charset)
(setq charset (mew-charset-guess-region (point) (point-max))))
+
+ ;; cannot guess charset
+ (if (null charset)
+ (progn
+ (message "Cannot guess charset. Confirm charset!!")
+ (setq charset "us-ascii")))
+
;; Guess cte for mewencode executed later.
(if cte
(setq encopts (mew-encode-get-topts cte))
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 無し
型: application/octet-stream
サイズ: 3836 バイト
説明: mew-jisx0201.el
URL: <http://www.mew.org/pipermail/mew-dist/attachments/19970908/e12f52d6/attachment.obj>
Mew-dist メーリングリストの案内