write-char and external format
I thought that write-char would do the right thing based on the external format of the stream. But when I try the test below, I don't get the same file I get from saving this string in the editor with the same external format. Bug or misconception? The original string is: '©«¡®£§¼½¾¿ ÀÉÌÓÙÝ àéìóùý āŹźŻżŽž ∧∨' The result I get from the function below is: '©«¡®£§¼½¾¿ ÀÉÌÓÙÝ àéìóùý yz{|}~ '(' (defun tst () (let ((chars '(#\U+0027 ;single quote #\U+00A9 #\U+00AB #\U+00A1 #\U+00AE #\U+00A3 #\U+00A7 #\U+00BC #\U+00BD #\U+00BE #\U+00BF #\U+0020 #\U+00C0 #\U+00C9 #\U+00CC #\U+00D3 #\U+00D9 #\U+00DD #\U+0020 #\U+00E0 #\U+00E9 #\U+00EC #\U+00F3 #\U+00F9 #\U+00FD #\U+0020 #\U+0101 #\U+0179 #\U+017A #\U+017B #\U+017C #\U+017D #\U+017E #\U+0020 #\U+2227 #\U+2228 #\U+0027))) (with-open-file (ff "~/utf8.txt" :direction :output :external-format '(:utf-8 :eol-style :lf) :if-exists :supersede) (loop for ch in chars do (write-char ch ff))))) John DeSoi, Ph.D. http://pgedit.com/ Power Tools for PostgreSQL