in vault-core/src/main/java/org/apache/jackrabbit/vault/util/Text.java [467:484]
public static String escapeIllegalJcrChars(String name) {
StringBuffer buffer = new StringBuffer(name.length() * 2);
for (int i = 0; i < name.length(); i++) {
char ch = name.charAt(i);
if (ch == '%' || ch == '/' || ch == ':' || ch == '[' || ch == ']'
|| ch == '*' || ch == '|'
|| (ch == '.' && name.length() < 3)
|| (ch == ' ' && (i == 0 || i == name.length() - 1))
|| ch == '\t' || ch == '\r' || ch == '\n') {
buffer.append('%');
buffer.append(Character.toUpperCase(Character.forDigit(ch / 16, 16)));
buffer.append(Character.toUpperCase(Character.forDigit(ch % 16, 16)));
} else {
buffer.append(ch);
}
}
return buffer.toString();
}