On Feb 26, 2017, at 9:46 AM, Matt Wette <matt.wette@gmail.com> wrote:

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))))


My bad.  The failure was on guile-2.0.13.  It seems to work on guile-2.1.7:

mwette$ guile-2.1.7-dev3/meta/guile port-di.test
"βαδ ασσ am I."
PASS: drain-input: encoded input