[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: how to setuo Mule-UCS
- X-ml-count: 1785
- Subject: Re: how to setuo Mule-UCS
- From: chiyu <ma11092c@xxxxxxxxxxxxxxxxx>
- Date: 27 Dec 1999 22:51:10 +0900
- User-agent: Nana-gnus/6.13.9 SEMI/1.13.5 (Meihō) FLIM/1.13.2 (Kasanui) Emacs/20.4 (i386-*-windows98.1998) MULE/4.1 (AOI) Meadow/1.10 (TSUYU)
こんにちは。chiyu(あかば)といいます。
自己レスです。
JDKのnative2ascii.exeを持っていれば、
次のやりかたでもよいみたいです。
(ひょっとしたら、常識だったのかもしれない...)
環境は、Windows98(Japanese) + Meadow1.10 + Mule-UCS-0.62 + JDK1.1.1 です。
以上。よいお年を。
(define-process-argument-editing "/native2ascii\\.exe\\'"
(lambda (x) (general-process-argument-editing-function x nil t)))
(defun mule-to-UE-buffer nil
"Convert multilingual characters in the current buffer into Unicode Escapes notation."
(interactive "*")
(save-excursion
(save-restriction
(mule-to-UE-buffer (point-min) (point-max)))))
(defun mule-to-UE-region (beg end)
"Convert multilingual characters in the region into Unicode Escapes notation."
(interactive "*r")
(save-excursion
(save-restriction
(let ((coding-system-for-read 'latin-1) (coding-system-for-write 'utf-8))
(call-process-region beg end "native2ascii.exe" t t t "-encoding UTF8")))))
(defun UE-to-mule-buffer nil
"Convert the current buffer from Unicode Escapes notation into mule characters."
(interactive "*")
(save-excursion
(save-restriction
(UE-to-mule-buffer (point-min) (point-max))))
(defun UE-to-mule-region (beg end)
"Convert the region from Unicode Escapes notation into mule characters.
Return the length of resulting text."
(interactive "*r")
(save-excursion
(save-restriction
(let ((coding-system-for-read 'utf-8) (coding-system-for-write 'latin-1))
(call-process-region beg end "native2ascii.exe" t t t "-reverse -encoding UTF8")
(- (point-max) (point-min)))))) ;変換結果の文字長を返り値にする。重要!!!
(make-coding-system
'java-unicode-escapes 0 ?U
"JAVA Unicode Escapes"
nil
'((safe-charsets . t)
(post-read-conversion . post-read-decode-java-unicode-escapes)
(pre-write-conversion . pre-write-encode-java-unicode-escapes)))
(defun post-read-decode-java-unicode-escapes (len)
(let ((pos (point))
(buffer-modified-p (buffer-modified-p))
last-coding-system-used)
(prog1
(UE-to-mule-region pos (+ pos len))
(set-buffer-modified-p buffer-modified-p))))
(defun pre-write-encode-java-unicode-escapes (from to)
(let ((buf (current-buffer)))
(set-buffer (generate-new-buffer " *temp*"))
(if (stringp from)
(insert from)
(insert-buffer-substring buf from to))
(let (last-coding-system-used)
(mule-to-UE-region 1 (point-max)))
nil))