尝试
加载包含一行的文件内容:xdf[xdf[list('abcdefg')].eq('yes').any(1)]
λέξη
输出
(with-open-file (s PATH-TO-FILE :direction :input)
(let ((a (read-line s)))
(print a)))
尝试:
""
T
输出
(with-open-file (s PATH-TO-FILE :direction :input)
(let ((buffer ""))
(do ((character (read-char s nil) (read-char s nil)))
((null character))
(setf buffer (concatenate 'string buffer (format nil "~a" character))))
(format t "~a" buffer)))
我想要的是加载包含此类非标准字符的所有文件行。 然后我希望能够将这些单词输出到控制台或通过LTK小部件(例如按钮上的文本)。
答案 0 :(得分:0)
您需要将:external-format X
传递给with-open-file
,其中
X
是文件中使用的实际编码(:utf-8
或:ISO-8859-7
或其他)。
(with-open-file (stream PATH-TO-FILE :external-format :utf-8)
(let ((line (read-line stream)))
(loop :for char :across line :do
(print (list (char-name char) (char-code char))))
line))
因为它打印
("ZERO_WIDTH_NO-BREAK_SPACE" 65279)
("GREEK_SMALL_LETTER_LAMDA" 955)
("GREEK_SMALL_LETTER_EPSILON_WITH_TONOS" 941)
("GREEK_SMALL_LETTER_XI" 958)
("GREEK_SMALL_LETTER_ETA" 951)
你可以看到你确实正确地阅读了文件。
现在问题是如何将打印这些非ASCII字符添加到屏幕上,这是一个完全不同的问题。