Ошибка StringBuilder или нет?

1

Моя тестовая программа:

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?

  • 1
    Я не могу понять, почему он должен делать что-то другое. Какое поведение вы ожидаете?
  • 0
    Я получаю ? -> 65270 при запуске этого кода
Показать ещё 4 комментария
Теги:
stringbuilder

1 ответ

1
Лучший ответ

Причиной вашего результата является то, что персонаж 65270 является арабской лигатурой. Арабский - это сценарий, написанный справа налево. Поэтому консоль Eclipse изменяет направление слева направо на право налево. Если вы попробуете символ из скрипта, который не является скриптом справа налево, результаты будут такими, как ожидалось. Попробуйте 0x5678, который является старым китайским символом для тонны (веса), например.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню