Gave up using mmap since it won't automatically decode UTF-8.