static final String encode(final String s) {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			if (c == '\\') {
				sb.append("\\\\");
			} else if (c < 0x20 || c > 0x7f) {
				sb.append("\\u");
				if (c < 0x10) {
					sb.append("000");
				} else if (c < 0x100) {
					sb.append("00");
				} else if (c < 0x1000) {
					sb.append('0');
				}
				sb.append(Integer.toString(c, 16));
			} else {
				sb.append(c);
			}
		}
		return sb.toString();
	}