Печать суррогатных персонажей UTF в Java на UxtermJAVA

Программисты JAVA общаются здесь
Anonymous
Печать суррогатных персонажей UTF в Java на Uxterm

Сообщение Anonymous »

Наконец -то мне приходилось иметь дело с суррогатными персонажами UTF в Java. Я сталкиваюсь с проблемой, пытающейся распечатать их на UXTRICE, запущенном Cygwin. < /P>
Вот образец программы. Он намерен печатать математический курсивный маленький I (Codepoint 119894): < /p>

Код: Выделить всё

public class PrintChar {
public static void main(String[] args) throws Exception {
int codepoint = 119894; // Mathematical italic small i
String s = new StringBuilder().appendCodePoint(codepoint).toString();
System.out.println("Codepoint " + codepoint + "=" + s);
}
}
< /code>
Когда я запускаю это, я получаю выход: < /p>
$ java -Dfile.encoding=UTF-8 -cp bin PrintChar
Codepoint 119894=?
Но когда я пропутаю вывод через Cat , я получаю ожидаемый результат:
$ java -Dfile.encoding=UTF-8 -cp bin PrintChar | cat
Codepoint 119894=𝑖
< /code>
может кто -нибудь объяснить, почему? Это также происходит с обычным терминалом Cygwin. Это не происходит в терминале, проходящем через VMware VSphere. На этом терминале мне не нужна труба, чтобы увидеть курсив i.

Подробнее здесь: https://stackoverflow.com/questions/781 ... -on-uxterm

Вернуться в «JAVA»