Решение состоит в том, чтобы передать последовательность Unicode как массив символов:
char[] text = new char[] {'\u0627', '\u0644', '\u0639',
'\u0631', '\u0628', '\u064A', '\u0629'};
add(new LabelField(text));
Таким образом, чтобы отобразить последовательность Юникода, хранящуюся в строке, нам нужно разобрать эту строку в символы:
private char[] getUnicodeChars(String string) {
char[] result = new char[] {};
String[] charCodes = split(string, "\\");
result = new char[charCodes.length];
for (int i = 0; i < charCodes.length; i++) {
result[i] = (char) Integer.parseInt(charCodes[i].substring(1), 16);
}
return result;
}
И где-то в коде:
String txt = "\u0627\u0644\u0639\u0631\u0628\u064A\u0629";
add(new LabelField(getUnicodeChars(txt)));
И переключать локаль не нужно. Конечно, арабский шрифт должен быть установлен.