code: public final CharBuffer decode(ByteBuffer buffer) {
          try {
              return newDecoder()
                      .onMalformedInput(CodingErrorAction.REPLACE)
                      .onUnmappableCharacter(CodingErrorAction.REPLACE).decode(buffer);
          } catch (CharacterCodingException ex) {
              throw new Error(ex.getMessage(), ex);
          }
      }
docs: Returns a new {@code CharBuffer} containing the characters decoded from {@code buffer}.
  This method uses {@code CodingErrorAction.REPLACE}.
  
  <p>Applications should generally create a {@link CharsetDecoder} using {@link #newDecoder}
  for performance.
  
  @param buffer
  the byte buffer containing the content to be decoded.
  @return a character buffer containing the output of the decoding.