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

[xyzzy:09186] unicode 文字の文字化け



今日は。[佐藤 (ゑびすや) 修] と云うものです。

次のようなことしたいと思っています。

1. 所与の unicode (utf8n) のテキストファイル <file> がある。曖昧さを排除するため、改行コー
ドは lf とします。
2. 所与の unicode (utf8n) 文字列 <string> がある。
3. <file> に含まれる行のうち行頭が <string> に一致する行を selected buffer に表示させたい。

そこで、つぎのような関数を書きました。

(defun utf8n-show-lines-starting-with-keyword (keyword filename)
  "Bring lines starting with a keyword from a file into the selected buffer"
  (interactive "skey word: \nffile name: ")
  (let (line-read-in index)
  (set-buffer-fileio-encoding *encoding-utf8n*)
  (set-buffer-eol-code *eol-lf*)
    (with-open-file (in filename :direction :input)
	(while (setq line-read-in (read-line in nil))
	  (if (setq index (string-matchp keyword line-read-in))
		(if (zerop index)
		    (progn
			(with-output-to-selected-buffer (format t "~A~%" line-read-in))
			(forward-line 1))))))
    )
  )

しかし、これだと出力が文字化けしてしまいます。どこで間違っているのか、皆さんのお知恵を拝借
できれば幸甚です。

-- 
SATOW Osam (佐藤 修)

Index Home