Ниже приведена Java-программа для печати символа юникода в консоли Windows.
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
public class PrintUnicodeChar {
public static void main (String[] argv) throws UnsupportedEncodingException {
String unicodeMessage = "\u00A3"; // Pound sign
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.print(unicodeMessage);
}
}
Я выбрал Lucida Console в качестве шрифта и установил кодовую страницу на 65001.
Вывод, который я получаюравно £ �
Если я напечатаю знак фунта три раза, используя "\u00A3\u00A3\u00A3"
, на выходе получится £££ � £.Печать символов с более высоким значением Юникода выводит больше, делая его более искаженным.
Вот еще одна строка "\u00A3\n\u00A3\u00A3\n\u00A3\u00A3\u00A3\n\u00A3\u00A3\u00A3\u00A3\n\u00A3\u00A3\u00A3\u00A3\u00A3\n"
Вывод
£
££
£££
££££
£££££
� £
£££££
� ££
�
Что происходит?Это проблема с терминалом Windows 7?Как запретить печать дополнительных символов?