Моя тестовая программа:
public class Test {
public static void main(String[] args) {
char ch = 65270;
StringBuilder sb = new StringBuilder();
sb.append(ch);
sb.append(" -> ");
sb.append(Integer.valueOf(ch));
System.out.println(sb.toString());
}
}
Результат: 65270 <- لآ
Я не понимаю, почему?
Результат истекает:? → 65270
Фактический результат в терминале (используйте команду "javac Test.java" и "java Test"):? → 65270
Но в консоли Eclipse: 65270 <-?
Это похоже на проблему Eclipse?
Причиной вашего результата является то, что персонаж 65270 является арабской лигатурой. Арабский - это сценарий, написанный справа налево. Поэтому консоль Eclipse изменяет направление слева направо на право налево. Если вы попробуете символ из скрипта, который не является скриптом справа налево, результаты будут такими, как ожидалось. Попробуйте 0x5678, который является старым китайским символом для тонны (веса), например.
? -> 65270
при запуске этого кода