Do we have to read the entire file into memory before trying to determine if the encoding is supported? Seems like we'd only need to read in the first 1K and could bail much faster on large binaries (although this is not critical since we should only hit this for binaries of unknown file extension, right?).