Как обрабатывать акценты в Common Lisp (SBCL)?
Это, наверное, очень просто, но я не знал, где еще спросить. Я пытаюсь обработать некоторую текстовую информацию в SLIME REPL из файла, который написан на португальском языке, поэтому использует много символов ударения - таких как é, á, ô и т. Д.
Когда я работаю с текстами на английском, я использую следующую функцию:
(defun txt2list (name)
(with-open-file (in name)
(let ((res))
(do ((line (read-line in nil nil)
(read-line in nil nil)))
((null line)
(reverse res))
(push line res))
res)))
который не может прочитать символы с акцентом, что приводит к ошибке «последовательность октетов # (195) не может быть декодирована».
Итак, мой вопрос: есть ли способ автоматически манипулировать этими персонажами? Можно заменить эти символы на букву без акцента («á» превращается в «a») или просто удалить такие символы («cômodo» превращается в «cmodo»), независимо от того, делается ли это в самом файле перед чтением или во время процесс чтения.