I have this String
String x="String containning special chars \u202C \n \u202C \u202C \u202C";
How can I print out this: String containning special chars \u202C \n \u202C \u202C \u202C
?
Tried
System.out.println(x.replace("\\","\\\\"));
But that only prints String containning special chars \n
Also tried
String out = org.apache.commons.lang3.StringEscapeUtils.unescapeJava(x);
System.out.println(out);
But that also doesn't help.
Any one with a suggestion or an API that I am not aware of?
UPDATE - SOLUTION
Following @lbear aproach I came up with this functions that deals most cases of escaped Strings
public static String removeUnicodeAndEscapeChars(String input) {
StringBuilder buffer = new StringBuilder(input.length());
for (int i = 0; i < input.length(); i++) {
if ((int) input.charAt(i) > 256) {
buffer.append("\\u").append(Integer.toHexString((int) input.charAt(i)));
} else {
if (input.charAt(i) == '\n') {
buffer.append("\\n");
} else if(input.charAt(i) == '\t'){
buffer.append("\\t");
}else if(input.charAt(i) == '\r'){
buffer.append("\\r");
}else if(input.charAt(i) == '\b'){
buffer.append("\\b");
}else if(input.charAt(i) == '\f'){
buffer.append("\\f");
}else if(input.charAt(i) == '\''){
buffer.append("\\'");
}else if(input.charAt(i) == '\"'){
buffer.append("\\");
}else if(input.charAt(i) == '\\'){
buffer.append("\\\\");
}else {
buffer.append(input.charAt(i));
}
}
}
return buffer.toString();
}