🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fj.editor.xemacs
13 messages
13 total messages Started by IMAI Hidetoshi Thu, 18 Oct 2001 05:54
open-network-stream使用時の文字コードについて
#95
Author: IMAI Hidetoshi
Date: Thu, 18 Oct 2001 05:54
58 lines
2919 bytes
~~~xemacs~~~~~~~~~~~~~~~~~
~~~~~
emacs-lisp~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~

~~: FreeBSD 4.3-RELEASE
	  xemacs-21.1.14

~~~~~~~~~~~~~~~~~~~~~~~~~~~
open-network-stream~~~~web~~~~~~~log~~~~~~~
~~~~~~~~~~~~~~~~~~

~~~~~~~~~log~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~log~~~~~sjis~~~
~
------------------------------------------------------------
~~~~~Ž€~~~~~~~~~~~~~~~
------------------------------------------------------------

set-process-coding-system ~
sjis euc-japan shift_jis-dos automatic-conversion ~~~~~~
~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~

~~~shell-command-to-string~~~~nkf -e~~~~~~~~~
~~~~~~~~~~~~~~~~emacs-lisp~~~~~~~~~~
~~~~~

------------------------------------------------------------
(defun nybc-get-log-file ()
  "~~~~~~~~~~~~"
  (save-excursion
	(let (proc)
	  (message "now connecting...")
	  (open-network-stream nybc-view-net-process
						   nybc-view-net-buffer
						   nybc-view-net-url
						   80)
	  (set-buffer nybc-view-net-buffer)
	  (erase-buffer)
	  (setq proc (get-buffer-process (current-buffer)))
	  (set-process-coding-system proc 'shift_jis-dos 'shift_jis-dos)
;	  (set-process-coding-system proc 'automatic-conversion 'automatic-conversion)
	  (process-send-string proc
						   (format "%s" (concat "GET /hogehoge/keijiban.log HTTP/1.1\n"
												"Host: "
												nybc-view-net-url
												"\n"
												"Connection: close\n"
												"\n")))
	  (while (and (eq (process-status proc) 'open)
				  (goto-char (point-min))
				  (not (re-search-forward "^Process" nil t)))
		(accept-process-output proc))
	  (message "now connecting...connected"))))
------------------------------------------------------------
Re: open-network-stream使用時の文字コードについて
#96
Author: NAKAJI Hiroyuki
Date: Thu, 18 Oct 2001 06:09
9 lines
1648 bytes
中治@豊橋です。

Content-Type: text/plain; charset=X-UNKNOWN
Content-Transfer-Encoding: quoted-printable

となっていて読めません。スプールのファイルをlessで見ても、日本語と思われる
部分が、すべて「~」になっています。
-- 
NAKAJI Hiroyuki (中治 弘行)
Re: open-network-stream使用時の文字コードについて
#97
Author: IMAI Hidetoshi
Date: Thu, 18 Oct 2001 07:08
74 lines
4102 bytes
At 18 Oct 2001 15:09:49 +0900,
NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> wrote:
> 
> 中治@豊橋です。
> 
> Content-Type: text/plain; charset=X-UNKNOWN
> Content-Transfer-Encoding: quoted-printable
> 
> となっていて読めません。スプールのファイルをlessで見ても、日本語と思われる
> 部分が、すべて「~」になっています。
> -- 
> NAKAJI Hiroyuki (中治 弘行)

以前 xemacsのscrollについてお世話になった
今井です。文字化けメールを送ってしまい大変失礼しました。
文字コードについての質問をするために、例としてつけた
文字化けの文章が原因でした。

環境: FreeBSD 4.3-RELEASE
	  XEmacs 21.1.14

質問なのですが、現在以前から興味のあったemacs-lispの勉強をして
います。そこで、友だちの掲示板を見るための関数を作成しました。
open-network-streamを用いてlogファイルをとってきて、それを表示
すると言うものなのですが、どうしても一部分が文字化けしてしまい
ます。もとのlogファイルはsjisです。

どうすれば、文字化けが起きないようになるかアドバイスをお願いし
ます。


例(文字化けメールにならないようにコピーではなく手書きです。)
------------------------------------------------------------
店出しも不^^I\200鳥王座決定戦もでるらしいけど。
------------------------------------------------------------

set-process-coding-systemの引数を
sjis euc-japan shift_jis-dos automatic-conversion と
いろいろためしてみましたが解決しませんでした。

なお、shell-command-to-string を用いて fetch,nkf -eとしたときは
文字化けはおきませんでした。できれば、emacs-lispだけで作成した
いと考えています。

作成した関数を以下に示します。
------------------------------------------------------------
(defun nybc-get-log-file ()
  "ログファイルを取ってくる"
  (save-excursion
	(let (proc)
	  (message "now connecting...")
	  (open-network-stream nybc-view-net-process
						   nybc-view-net-buffer
						   nybc-view-net-url
						   80)
	  (set-buffer nybc-view-net-buffer)
	  (erase-buffer)
	  (setq proc (get-buffer-process (current-buffer)))
	  (set-process-coding-system proc 'shift_jis-dos 'shift_jis-dos)
	  (process-send-string proc
						   (format "%s" (concat "GET /hogehoge/keijiban.log HTTP/1.1\n"
												"Host: "
												nybc-view-net-url
												"\n"
												"Connection: close\n"
												"\n")))
	  (while (and (eq (process-status proc) 'open)
				  (goto-char (point-min))
				  (not (re-search-forward "^Process" nil t)))
		(accept-process-output proc))
	  (message "now connecting...connected"))))
------------------------------------------------------------

よろしくお願いします。
Re: open-network-stream使用時の文字コードについて
#98
Author: Katsumi Yamaoka
Date: Fri, 19 Oct 2001 00:08
49 lines
3424 bytes
>>>>> In <xl9g08hwhle.wl@cal.infonets.hiroshima-u.ac.jp>
>>>>>	IMAI Hidetoshi <hidepin@infonets.hiroshima-u.ac.jp> wrote:

中治さん> 日本語と思われる部分が、すべて「~」になっています。

肝心な文字化け部分は "=8E=80" → "\216\200" → "死" のようですね。

今井さん> set-process-coding-systemの引数を
今井さん> sjis euc-japan shift_jis-dos automatic-conversion と
今井さん> いろいろためしてみましたが解決しませんでした。

特定の部分がデコードできない理由を想像してみるに、何回か
accept-process-output でデータを取り込むときに sjis の 2-byte の
途中で区切られてしまったんじゃないかしら。

今井さん> なお、shell-command-to-string を用いて fetch,nkf -eとしたと
今井さん> きは文字化けはおきませんでした。

それと同じことを elisp で行なうのが良いのではありませんか。すな
わち open-network-stream は無変換で動作させ、取り込み終わった後
でデコードする、と。

(defun nybc-get-log-file ()
  "ログファイルを取ってくる"
  (message "now connecting...")
  (save-excursion
    (set-buffer nybc-view-net-buffer)
    (erase-buffer)
    (let* ((coding-system-for-read 'binary)
	   (coding-system-for-write 'binary)
	   (proc (open-network-stream nybc-view-net-process
				      nybc-view-net-buffer
				      nybc-view-net-url
				      80)))
      (process-send-string
       proc
       (format "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n"
	       "/hogehoge/keijiban.log"
	       nybc-view-net-url))
      (while (and (eq (process-status proc) 'open)
		  (goto-char (point-min))
		  (not (re-search-forward "^Process" nil t)))
	(accept-process-output proc)))
    (decode-coding-region (point-min) (point-max) 'shift_jis-dos))
  (message "now connecting...connected"))

"\r\n" は "\n" の方が良いかもしれません。適宜調整して下さい。
-- 
山岡
Re: open-network-stream使用時の文字コードについて
#99
Author: IMAI Hidetoshi
Date: Fri, 19 Oct 2001 08:13
37 lines
3103 bytes
今井です。
山岡さんアドバイスありがとうございます

At Fri, 19 Oct 2001 09:08:35 +0900,
Katsumi Yamaoka <yamaoka@jpl.org> wrote:

> 今井さん> set-process-coding-systemの引数を
> 今井さん> sjis euc-japan shift_jis-dos automatic-conversion と
> 今井さん> いろいろためしてみましたが解決しませんでした。
> 
> 特定の部分がデコードできない理由を想像してみるに、何回か
> accept-process-output でデータを取り込むときに sjis の 2-byte の
> 途中で区切られてしまったんじゃないかしら。

accept-process-outputを記述している部分は処理がlogファイルを読
み終わるまで次の処理に移らないようにしています。
この部分のwhileのかわりに(sit-for 10)としましたが、文字化けは
起ります。

> 今井さん> なお、shell-command-to-string を用いて fetch,nkf -eとしたと
> 今井さん> きは文字化けはおきませんでした。
> 
> それと同じことを elisp で行なうのが良いのではありませんか。すな
> わち open-network-stream は無変換で動作させ、取り込み終わった後
> でデコードする、と。

山岡さんの変更を参考にしてためしてみました。
結果、例として前回に示した部分はみごとに文字化けがなおっていま
したが他の部分が代わりに文字化けしてみました。
ファイルを良く見たところ、半角文字が、記入されていました。
これが、原因でしょうか?
もしそうならば、何か対処の方法があればアドバイスをお願いします。

nkfを使った場合は半角文字が全角の関係ない文字になっていました。
また、scpでlogファイルをとってきてXEmacsで開いたところ、半角の
フォントはおかしかったですが文字化けせずに表示されていました。
Re: open-network-stream使用時の文字コードについて
#100
Author: Katsumi Yamaoka
Date: Fri, 19 Oct 2001 10:52
48 lines
3970 bytes
>>>>> In <xl91yk0jbdh.wl@cal.infonets.hiroshima-u.ac.jp>
>>>>>	IMAI Hidetoshi <hidepin@infonets.hiroshima-u.ac.jp> wrote:

>> 特定の部分がデコードできない理由を想像してみるに、何回か
>> accept-process-output でデータを取り込むときに sjis の 2-byte の
>> 途中で区切られてしまったんじゃないかしら。

今井さん> accept-process-outputを記述している部分は処理がlogファイルを
今井さん> 読み終わるまで次の処理に移らないようにしています。この部分の
今井さん> whileのかわりに(sit-for 10)としましたが、文字化けは起ります。

はずれでしたか。

;; もし当たりだったら、大昔の GNUS がちゃんと動いていたことの
;; 説明ができないですね。

今井さん> 山岡さんの変更を参考にしてためしてみました。
今井さん> 結果、例として前回に示した部分はみごとに文字化けがなおってい
今井さん> ましたが他の部分が代わりに文字化けしてみました。
今井さん> ファイルを良く見たところ、半角文字が、記入されていました。
今井さん> これが、原因でしょうか?
今井さん> もしそうならば、何か対処の方法があればアドバイスをお願いしま
今井さん> す。

半角文字とおっしゃるのは正しい jisx0201 カナ (半角カナ) で、今井
さんが必要とする情報ですか?  それとも本編とは無関係な制御語のよ
うなものでしょうか?

;; はたまた特定の機種固有な文字とか...。

先のプログラムは process buffer 全体をデコードの対象にしていまし
たが、process buffer から目的のデータだけを取り出して別のバッファ
に移動し、そこでデコードするのがまっとうなやり方だと思います。

それにしても、具体的なデータを拝見しないとこれ以上は無理です。
差し支え無い範囲で binary で取得した生データを base64 などでエン
コードして提示していただければ、ぼく以外にも助け船を出せる人がい
らっしゃると思いますよ。

今井さん> nkfを使った場合は半角文字が全角の関係ない文字になっていまし
今井さん> た。また、scpでlogファイルをとってきてXEmacsで開いたところ、
今井さん> 半角のフォントはおかしかったですが文字化けせずに表示されてい
今井さん> ました。

関係無いですが、nkf は -S オプションを使うと jisx0201 カナ を入
力することができるようですね。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
Re: open-network-stream使用時の文字コードについて
#103
Author: Katsumi Yamaoka
Date: Mon, 22 Oct 2001 04:45
38 lines
3158 bytes
>>>>> In <yosuzo6nkila.fsf@jpl.org> 
>>>>>	Katsumi Yamaoka <yamaoka@jpl.org> wrote:

山岡> それにしても、具体的なデータを拝見しないとこれ以上は無理です。

今井さんから具体的なデータをいただきました。:-)
はじめは何が問題だかわからなかったんですが、よくよく見ると XEmacs 21.1
で ascii と shift_jis が混じったテキストを一括して

	   (decode-coding-region (point-min) (point-max) 'shift_jis)

すると、部分的にデコードに失敗するようです。XEmacs 21.2, 21.4 および
21.5 ではそういうことが起こらず、これは XEmacs 21.1 のバグではないかと
思います。

;; あえて言わせてもらえば、バグも含めて変化しないという点で 21.1 は安
;; 定版です。今のところもっとも信頼できるのは 21.4 ではないでしょうか。

XEmacs 21.1 をどう直したら良いのかはわかりません。また、小細工を労した
ところで、完全に対策できるかどうか自信が無いので、いっそ nkf を使って
しまってはいかがでしょうか。すなわち

	   (decode-coding-region (point-min) (point-max) 'shift_jis)

の代わりに

	   (if (and (featurep 'xemacs)
		    (= emacs-major-version 21)
		    (= emacs-minor-version 1))
	       (let ((coding-system-for-write 'binary)
		     (coding-system-for-read 'iso-2022-jp))
		 (call-process-region (point-min) (point-max)
				      "nkf" t t nil "-S"))
	     (decode-coding-region (point-min) (point-max) 'shift_jis))

とすることによって 21.1 の場合だけ "nkf" を call する、と。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
Re: open-network-stream使用時の文字コードについて
#104
Author: IMAI Hidetoshi
Date: Mon, 22 Oct 2001 07:40
49 lines
3553 bytes
こんにちは今井です。

At Mon, 22 Oct 2001 13:45:15 +0900,
Katsumi Yamaoka <yamaoka@jpl.org> wrote:
> 
> >>>>> In <yosuzo6nkila.fsf@jpl.org> 
> >>>>>	Katsumi Yamaoka <yamaoka@jpl.org> wrote:
> 
> 山岡> それにしても、具体的なデータを拝見しないとこれ以上は無理です。
> 
> 今井さんから具体的なデータをいただきました。:-)
> はじめは何が問題だかわからなかったんですが、よくよく見ると XEmacs 21.1
> で ascii と shift_jis が混じったテキストを一括して
> 
> 	   (decode-coding-region (point-min) (point-max) 'shift_jis)
> 
> すると、部分的にデコードに失敗するようです。XEmacs 21.2, 21.4 および
> 21.5 ではそういうことが起こらず、これは XEmacs 21.1 のバグではないかと
> 思います。
> 
> ;; あえて言わせてもらえば、バグも含めて変化しないという点で 21.1 は安
> ;; 定版です。今のところもっとも信頼できるのは 21.4 ではないでしょうか。
> 
> XEmacs 21.1 をどう直したら良いのかはわかりません。また、小細工を労した
> ところで、完全に対策できるかどうか自信が無いので、いっそ nkf を使って
> しまってはいかがでしょうか。すなわち
> 

ありがとうございます。
こちらで山岡さんのコードを含めて実行したところ、文字化けせずに
表示することができました。

できるだけnkfなどの外部コマンドを使わずにすませたかったのです
が、(nkfをインストールしていないhostでは実行できないため)理由
がわかれば納得できました。

山岡さんが既にまとめてらっしゃるのですが、今回の問題と解決策は

------------------------------------------------------------
(問題点)
XEmacs 21.1 で文字コードを変換すると、文章の一部が文字化けする。

(解決策)
XEmacs 21.1 で文字コードを変換する部分にバグがある可能性があり
変換に失敗している。そこで、外部コマンドの"nkf"などを使う必要
がある。
XEmacs 21.1 XEmacs 21.4 では問題がないようである。
------------------------------------------------------------
Re: open-network-stream使用時の文字コードについて
#106
Author: Katsumi Yamaoka
Date: Mon, 22 Oct 2001 09:13
57 lines
4041 bytes
>>>>> In <xl9vgh8yvf1.wl@cal.infonets.hiroshima-u.ac.jp>
>>>>>	IMAI Hidetoshi <hidepin@infonets.hiroshima-u.ac.jp> wrote:

山岡> 小細工を労したところで、完全に対策できるかどうか自信が無いので、
山岡> いっそ nkf を使ってしまってはいかがでしょうか。

今井さん> ありがとうございます。
今井さん> こちらで山岡さんのコードを含めて実行したところ、文字化けせず
今井さん> に表示することができました。

今井さん> できるだけnkfなどの外部コマンドを使わずにすませたかったのです
今井さん> が、(nkfをインストールしていないhostでは実行できないため)理由
今井さん> がわかれば納得できました。

なるほど。では、すべての場合にうまくいくかどうかわかりませんが、
小細工を労、ではなくて弄してみましょう。:-p
以下のコードで関数 decode-coding-region そのものを置き換えます。

(if (and (featurep 'xemacs)
	 (= emacs-major-version 21)
	 (= emacs-minor-version 1))
    (defadvice decode-coding-region
      (around fix-a-bug-in-xemacs-21_1
	      (start end coding-system &optional buffer)
	      activate)
      "Fix a bug in XEmacs 21.1."
      (if (eq 'shift-jis (coding-system-category coding-system))
	  (save-excursion
	    (if buffer
		(set-buffer buffer))
	    (save-restriction
	      (narrow-to-region start end)
	      ;; convert line break codes
	      (ad-Orig-decode-coding-region
	       (point-min) (point-max)
	       (subsidiary-coding-system 'no-conversion
					 (coding-system-eol-type
					  coding-system)))
	      (goto-char (point-min))
	      ;; decode zenkaku strings
	      (while (re-search-forward "\
\\([\x81-\x84\x89-\xe9][\x40-\x7e\x80-\xfc]\
\\|\x88[\x9f-\xfc]\
\\|\xea[\x40-\x7e\x80-\xa2]\\)+" nil t)
		(ad-Orig-decode-coding-region (match-beginning 0) (match-end 0)
					      'shift_jis))
	      (goto-char (point-min))
	      ;; decode hankaku strings
	      (while (re-search-forward "[\xa1-\xdf]+" nil t)
		(save-restriction
		  (narrow-to-region (match-beginning 0) (match-end 0))
		  (ad-Orig-decode-coding-region (point-min) (point-max)
						'shift_jis)
		  (japanese-zenkaku-region (point-min) (point-max))))))
	ad-do-it)))
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
Re: open-network-stream使用時の文字コードについて
#111
Author: IMAI Hidetoshi
Date: Mon, 22 Oct 2001 20:44
40 lines
3603 bytes
今井です。

At Mon, 22 Oct 2001 18:13:36 +0900,
Katsumi Yamaoka <yamaoka@jpl.org> wrote:
> 
> >>>>> In <xl9vgh8yvf1.wl@cal.infonets.hiroshima-u.ac.jp>
> >>>>>	IMAI Hidetoshi <hidepin@infonets.hiroshima-u.ac.jp> wrote:
> 
> 今井さん> できるだけnkfなどの外部コマンドを使わずにすませたかったのです
> 今井さん> が、(nkfをインストールしていないhostでは実行できないため)理由
> 今井さん> がわかれば納得できました。
> 
> なるほど。では、すべての場合にうまくいくかどうかわかりませんが、
> 小細工を労、ではなくて弄してみましょう。:-p
> 以下のコードで関数 decode-coding-region そのものを置き換えます。
> 

ありがとうございます。
早速ためしてみたのですが、結果はまだ文字化けするところがある。
でした。

ちゃんと、defadviceした関数を使ってないのかと思い、途中に
message、sit-forを使って確かめたところ新しい関数を使っているよ
うだということを確認しました。

subsidiary-coding-systemなど
よく分からない関数があるのですが、関数をみたところ最初に全角文
字をre-search-forwardで見つけ出しsjisにdecodeし、
次に半角文字をみつけだし、sjisに変更した後全角に変換しています。

つまり、山岡さんのなさっていることは、半角文字が文字化けの原因
であると予想し、別々に処理することで文字化けを防ごうとしている
のだと思います。

しかし、これでうまくいかなかったので、文章に半角があるのが原因
ではなく、元々のdecode-coding-regionのバグが半角全角にかかわら
ず起きていると考えればいいのでしょうか?

# つまりXEmacs 21.1 を使っている限りどうしようもないと言うこ
# とですね。
Re: open-network-stream使用時の文字コードについて
#113
Author: Katsumi Yamaoka
Date: Mon, 22 Oct 2001 23:57
52 lines
4264 bytes
>>>>> In <xl9vgh75rs4.wl@cal.infonets.hiroshima-u.ac.jp>
>>>>>	IMAI Hidetoshi <hidepin@infonets.hiroshima-u.ac.jp> wrote:

山岡>> 以下のコードで関数 decode-coding-region そのものを置き換えます。

実はこれ、自動コード判定すら満足にできなかった初期の XEmacs 20
のころに編み出した技なのですが、

今井さん> 早速ためしてみたのですが、結果はまだ文字化けするところがある。
今井さん> でした。

だめでしたか。繰り返しになりますが、いわゆる安定版をお望みの諸兄
には XEmacs 21.4 (*) をお勧めしましょう。

(*) ftp://ftp.xemacs.org/pub/xemacs/xemacs-21.4/xemacs-21.4.4.tar.gz
    (CVS の candidate-21-4 枝ではすでに 21.4.5 が待機しています
    が、現在は一時的に CVS サーバが使えないようです。)

今井さん> subsidiary-coding-systemなどよく分からない関数があるのですが、
今井さん> 関数をみたところ最初に全角文字をre-search-forwardで見つけ出
今井さん> しsjisにdecodeし、次に半角文字をみつけだし、sjisに変更した後
今井さん> 全角に変換しています。

ascii が混じっていなければ良いのではないかと思ったのですが、
2-byte の sjis だけでもある条件ではうまくいかないようですね。
あのコードに少し手を入れれば、その条件を抽出して、
decode-coding-region に頼らずにデコードする手法が見つかるかもし
れませんね。

今井さん> つまり、山岡さんのなさっていることは、半角文字が文字化けの原
今井さん> 因であると予想し、別々に処理することで文字化けを防ごうとして
今井さん> いるのだと思います。

いえ、順序に深い意味は無いです。

今井さん> しかし、これでうまくいかなかったので、文章に半角があるのが原
今井さん> 因ではなく、元々のdecode-coding-regionのバグが半角全角にかか
今井さん> わらず起きていると考えればいいのでしょうか?

特に多用される全角の方に問題がありそうですね。2-byte の一文字だ
けだとちゃんとデコードするのに、他の文字との組合せで起こるような
気がします。もしそうなら、

	      (while (re-search-forward "\
\\([\x81-\x84\x89-\xe9][\x40-\x7e\x80-\xfc]\
\\|\x88[\x9f-\xfc]\
\\|\xea[\x40-\x7e\x80-\xa2]\\)+" nil t)

の部分で使っている正規表現から "+" を消してやったらうまくいくか
しら。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
Re: open-network-stream使用時の文字コードについて
#116
Author: IMAI Hidetoshi
Date: Tue, 23 Oct 2001 09:50
62 lines
4224 bytes
今井です。

At Tue, 23 Oct 2001 08:57:05 +0900,
Katsumi Yamaoka <yamaoka@jpl.org> wrote:
> 
> >>>>> In <xl9vgh75rs4.wl@cal.infonets.hiroshima-u.ac.jp>
> >>>>>	IMAI Hidetoshi <hidepin@infonets.hiroshima-u.ac.jp> wrote:
> 
> 山岡>> 以下のコードで関数 decode-coding-region そのものを置き換えます。
> 
> 実はこれ、自動コード判定すら満足にできなかった初期の XEmacs 20
> のころに編み出した技なのですが、
> 
> 今井さん> 早速ためしてみたのですが、結果はまだ文字化けするところがある。
> 今井さん> でした。
> 
> だめでしたか。繰り返しになりますが、いわゆる安定版をお望みの諸兄
> には XEmacs 21.4 (*) をお勧めしましょう。
> 

はい、是非そうしたいと思うのですが、私のマシンはともかく共有のマシ
ンはすべてのアプリケーションをports(FreeBSD)で管理することになっ
ていますのでportsになるのをまっている状態です。

# それとも、emacs21をつかえばいいかな。
# XEmacs と emacs の違いは主にGUIの使いがってが違うと思ってまし
# たがすくなくともemacs21は同じくらいに派手に感じています。
# 今は何が違うんでしょう?

> ascii が混じっていなければ良いのではないかと思ったのですが、
> 2-byte の sjis だけでもある条件ではうまくいかないようですね。
> あのコードに少し手を入れれば、その条件を抽出して、
> decode-coding-region に頼らずにデコードする手法が見つかるかもし
> れませんね。

略

> 
> 今井さん> しかし、これでうまくいかなかったので、文章に半角があるのが原
> 今井さん> 因ではなく、元々のdecode-coding-regionのバグが半角全角にかか
> 今井さん> わらず起きていると考えればいいのでしょうか?
> 
> 特に多用される全角の方に問題がありそうですね。2-byte の一文字だ
> けだとちゃんとデコードするのに、他の文字との組合せで起こるような
> 気がします。もしそうなら、

おっしゃるとうりに、1文字ずつdecodeすると文字化けが起りません
でした。
ただ時間が20秒はかかりました。

文字化けをする文字のつながりがわかればいいのですが、現在文字化
けをしている部分でも他の記事が書き込まれるとその部分の文字化け
はなおって他の部分が文字化けしてしまいます。
ですから、これを見つけ出すのは難しいのではないかと思います。

結局、XEmacs 21.4 にするまで nkfを使うコードを使うがいいようで
す。

# とりあえず、自分のマシンはXEmacs 21.4にすることにします。

ありがとうございました。
XEmacs 21.4.5 (Re: open-network-stream...)
#118
Author: Katsumi Yamaoka
Date: Tue, 23 Oct 2001 23:07
47 lines
3669 bytes
>>>>> In <yosur8rv6xf0.fsf@jpl.org>
>>>>>	Katsumi Yamaoka <yamaoka@jpl.org> wrote:

山岡> いわゆる安定版をお望みの諸兄には XEmacs 21.4 (*) をお勧めしましょ
山岡> う。

山岡> (*) ftp://ftp.xemacs.org/pub/xemacs/xemacs-21.4/xemacs-21.4.4.tar.gz
山岡>     (CVS の candidate-21-4 枝ではすでに 21.4.5 が待機しています
山岡>     が、現在は一時的に CVS サーバが使えないようです。)

>>>>> In <xl9lmi21y83.wl@cal.infonets.hiroshima-u.ac.jp>
>>>>>	IMAI Hidetoshi <hidepin@infonets.hiroshima-u.ac.jp> wrote:

今井さん> # とりあえず、自分のマシンはXEmacs 21.4にすることにします。

XEmacs のメーリングリストをお読みでない方のために:

XEmacs 21.4.5 がリリースされました。
  ftp://ftp.xemacs.org/pub/xemacs/xemacs-21.4/

以下は個人的に調べたミラー ftp サイトです。

転送完了:
  ftp://ftp.u-aizu.ac.jp/pub/gnu/emacs/xemacs/xemacs.org/xemacs-21.4/

転送中:
  ftp://sunsite.sut.ac.jp/pub/archives/packages/xemacs/xemacs-21.4/
  ftp://ftp.ie.niigata-u.ac.jp/pub/xemacs/xemacs-21.4/
  ftp://ftp.eos.hokudai.ac.jp/pub/xemacs/xemacs-21.4/

それから、

  ftp://ftp.jpl.org/xemacs/21.4/xemacs-21.4.5-coding-magic.patch

これは FSF Emacs と同様に、ファイルの一行目 (など) に書かれた

;; -*- mode: emacs-lisp; coding: iso-2022-7bit -*-

のような coding-system magic cookie を find-file 系の関数が正し
く扱うことができるようにするための、まだ採用されていない非公式な
パッチです。
この機能が無いと、各国語対応のアプリケーションで困ることがあり、
最新の Emacs-W3m や MU-CITE 付属の mu-register では、この対策が
施されていない XEmacs のために自前で `magic' を読むようにしてい
ます。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads