default to utf8 encoding when reading a file.  this will trigger invalid encoding on write if the string isn't utf8, and then we'll encode it correctly on the output