in velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/EscapeTool.java [244:284]
protected String dumpString(String string, boolean key) {
StringBuilder builder = new StringBuilder();
int i = 0;
if (!key && i < string.length() && string.charAt(i) == ' ') {
builder.append("\\ "); //$NON-NLS-1$
i++;
}
for (; i < string.length(); i++) {
char ch = string.charAt(i);
switch (ch) {
case '\t':
builder.append("\\t"); //$NON-NLS-1$
break;
case '\n':
builder.append("\\n"); //$NON-NLS-1$
break;
case '\f':
builder.append("\\f"); //$NON-NLS-1$
break;
case '\r':
builder.append("\\r"); //$NON-NLS-1$
break;
default:
if ("\\#!=:".indexOf(ch) >= 0 || (key && ch == ' ')) {
builder.append('\\');
}
if (ch >= ' ' && ch <= '~') {
builder.append(ch);
} else {
String hex = Integer.toHexString(ch);
builder.append("\\u"); //$NON-NLS-1$
for (int j = 0; j < 4 - hex.length(); j++) {
builder.append("0"); //$NON-NLS-1$
}
builder.append(hex);
}
}
}
return builder.toString();
}