code: @ThreadSafe public void stringEncode(String s, Writer writer) throws IOException {
  		char[] carr = s.toCharArray();
  		int len = carr.length;
  		for(int i = 0; i < len; i++) {
  			char c = carr[i];
  			switch (c) {
  			case '"':
  				writer.write("\\\"");
  				break;
  			case '/':
  				writer.write(escapeSlash ? "\\/" : "/");
  				break;
  			case '\\':
  				writer.write("\\\\");
  				break;
  			case '\b':
  				writer.write("\\b");
  				break;
  			case '\f':
  				writer.write("\\f");
  				break;
  			case '\n':
  				writer.write("\\n");
  				break;
  			case '\r':
  				writer.write("\\r");
  				break;
  			case '\t':
  				writer.write("\\t");
  				break;
  			default:
  				if(unicodeEscapeAll) {
  					if(c < 127) {
  						writer.append(c);
  					} else {
  						String hex = Integer.toHexString(c);
  						writer.write("\\u");
  						switch (hex.length()) {
  						case 1:
  							writer.write("000");
  							break;
  						case 2:
  							writer.write("00");
  							break;
  						case 3:
  							writer.write("0");
  							break;
  						default:
  							break;
  						}
  						writer.write(Integer.toHexString(c));
  					}
  				} else {
  					writer.append(c);
  				}
  				break;
  			}
  		}
  	}
docs: \" \\ \/ \b \f \n \r \t \u1234 four-hex-digits