docs: public static StringBuilder encode(StringBuilder buffer, CharSequence chars) {
  		chars.chars().forEach(c -> {
  			if (c == '\\') {
  				buffer.append("\\\\");
  			} else if (c == '"') {
  				buffer.append("\\\"");
  			} else if (32 <= c && c <= 126) {
  				buffer.append((char) c);
  			} else {
  				switch (c) {
  				case 0:
  					buffer.append("\\0");
  					break;
  				case 8:
  					buffer.append("\\b");
  					break;
  				case 9:
  					buffer.append("\\t");
  					break;
  				case 10:
  					buffer.append("\\n");
  					break;
  				case 12:
  					buffer.append("\\f");
  					break;
  				case 13:
  					buffer.append("\\r");
  					break;
  				default:
  					buffer.append("\\u").append(hexCharsUpper[(c >> 12) & 0xf]).append(hexCharsUpper[(c >> 8) & 0xf])
  							.append(hexCharsUpper[(c >> 4) & 0xf]).append(hexCharsUpper[c & 0xf]);
  				}
  			}
  		});
  		return buffer;
  	}