in src/main/java/org/apache/maven/shared/utils/StringUtils.java [979:1048]
public static String escape(@Nonnull String str) {
// improved with code from cybertiger@cyberiantiger.org
// unicode from him, and defaul for < 32's.
int sz = str.length();
StringBuilder buffer = new StringBuilder(2 * sz);
for (int i = 0; i < sz; i++) {
char ch = str.charAt(i);
// handle unicode
// CHECKSTYLE_OFF: MagicNumber
if (ch > 0xfff) {
buffer.append("\\u").append(Integer.toHexString(ch));
} else if (ch > 0xff) {
buffer.append("\\u0").append(Integer.toHexString(ch));
} else if (ch > 0x7f) {
buffer.append("\\u00").append(Integer.toHexString(ch));
}
// CHECKSTYLE_ON: MagicNumber
else if (ch < 32) {
switch (ch) {
case '\b':
buffer.append('\\');
buffer.append('b');
break;
case '\n':
buffer.append('\\');
buffer.append('n');
break;
case '\t':
buffer.append('\\');
buffer.append('t');
break;
case '\f':
buffer.append('\\');
buffer.append('f');
break;
case '\r':
buffer.append('\\');
buffer.append('r');
break;
default:
if (ch > 0xf) {
buffer.append("\\u00").append(Integer.toHexString(ch));
} else {
buffer.append("\\u000").append(Integer.toHexString(ch));
}
break;
}
} else {
switch (ch) {
case '\'':
buffer.append('\\');
buffer.append('\'');
break;
case '"':
buffer.append('\\');
buffer.append('"');
break;
case '\\':
buffer.append('\\');
buffer.append('\\');
break;
default:
buffer.append(ch);
break;
}
}
}
return buffer.toString();
}