code: public MessagePacker packRawStringHeader(int len)
              throws IOException
      {
          if (len < (1 << 5)) {
              writeByte((byte) (FIXSTR_PREFIX | len));
          }
          else if (str8FormatSupport && len < (1 << 8)) {
              writeByteAndByte(STR8, (byte) len);
          }
          else if (len < (1 << 16)) {
              writeByteAndShort(STR16, (short) len);
          }
          else {
              writeByteAndInt(STR32, len);
          }
          return this;
      }
docs: Writes header of a String value.
  <p>
  Length must be number of bytes of a string in UTF-8 encoding.
  <p>
  You MUST call {@link #writePayload(byte[])} or {@link #addPayload(byte[])} method to write body of the
  UTF-8 encoded string.
  
  @param len number of bytes of a UTF-8 string to be written
  @return this
  @throws IOException when underlying output throws IOException