Это не имеет ничего общего с перечислениями - вы бы, вероятно, увидели то же самое, если бы у вас просто было такое консольное приложение:
public class Test {
public static void main(String[] args) {
String x = "Behälter";
System.out.println((int) x.charAt(3));
}
}
Возможные проблемы:
- Выне говорите компилятору использовать правильную кодировку (это наиболее вероятный вариант)
- Ваш отладчик не может правильно отобразить значение
- Ваша сериализация JSON не работает должным образом(например, вы не отправляете правильную кодировку)
- Ваш JSON десериализация не работает должным образом (например, внешний интерфейс игнорирует указанную вами кодировку)
Первый вариант наиболее вероятен, если честно.Если это так, то это легко проверить - измените строку на "Beh\u00e4lter"
- интересующий вас символ - U + 00E4, так что экранирование Unicode позволяет вам выразить его в строковом литерале, не выходя за пределы ASCII на самом делеИсходный код.
Если это действительно работает, то вы можете вернуться к предыдущему коду, но проверить, как на самом деле сохраняется исходный файл, и что говорят ваши параметры компилятора.(Лично я бы порекомендовал использовать UTF-8 в качестве полно-Unicode, хорошо поддерживаемой кодировки.)