code: public void append(Encoder encoder, EncodingState encodingState, char[] b, int off, int len) throws IOException {
          if (b == null || len <= 0) {
              return;
          }
          if (shouldEncode(encoder, encodingState)) {
              EncodingState newEncoders = createNewEncodingState(encoder, encodingState);
              if (encoder instanceof StreamingEncoder) {
                  ((StreamingEncoder)encoder).encodeToStream(encoder, CharSequences.createCharSequence(b, off, len), 0, len, this,
                          newEncoders);
              }
              else {
                  encodeAndWrite(encoder, newEncoders, String.valueOf(b, off, len));
              }
          }
          else {
              write(encodingState, b, off, len);
          }
      }
docs: /*
  (non-Javadoc)
  @see
  EncodedAppender#append(org
  .codehaus.groovy.grails.support.encoding.Encoder,
  EncodingState, char[], int,
  int)