This is mildly hacky.
In order to get the JDK Charset logic to present an error for
converting from ASCII-8BIT to a normal character encoding, we
use the US-ASCII Charset as the input. However, that charset
considers high-range bytes to be malformed rather than unmappable,
causing us to present the wrong error. This hack informs our
transcoder that we're doing a binary-to-character transcode and
that malformed errors should be treated as unmappable errors,
allowing us to raise the appropriate Ruby error.