The encode() and decode()
methods within the nio converters treat both the MalformedInputException
and UnmappableCharacterException together in doing substitution. When the
substitute() method is used, it sets the substitituon for both.
In the Unicode spec, MalformedInput is called "illegal code unit
sequences". Conforming Unicode implementations are proscribed from
treating illegal code unit seuqences as characters, and the only options
which Unicode allows are to remove the illegal sequence, or to reject the
illegal sequence. This is different from undefined characters, for which
it is perfectly valid to do substitution.