I put together a test and tried on 2.1.7 - my test fails. See attached. (pass-if "encoded input" (let ((fn (test-file)) (nc "utf-8") (st "\u03b2\u03b1\u03b4 \u03b1\u03c3\u03c3 am I.") ;;(st "hello, world\n") ) (let ((p1 (open-output-file fn #:encoding nc))) ;;(display st p1) (string-for-each (lambda (ch) (write-char ch p1)) st) (close p1)) (let* ((p0 (open-input-file fn #:encoding nc)) (s0 (begin (unread-char (read-char p0) p0) (drain-input p0)))) (simple-format #t "~S\n" s0) (equal? s0 st))))