Unbuffered I/O requires a bytes fp, so I guess we now just send utf-8 encoded strings into that instead. Fixes #1596.