Как обрабатывать акценты в 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»), независимо от того, делается ли это в самом файле перед чтением или во время процесс чтения.

Ответы на вопрос(1)

Ваш ответ на вопрос