One hacker way to do this would be:
public static String convertUnicodePoints(String input) {
char[] chars = input.toCharArray();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
if (Character.codePointAt(input, i) < 125) {
sb.append(chars[i]);
}
else {
sb.append(String.format("&#%d;", (int)chars[i]));
}
}
return sb.toString();
}
If you do: System.out.println(convertUnicodePoints("Yağmur"));...
... you get: Yağmur.
Of course, you can play with the "conversion" logic and decide which ranges are converted.
source
share