Java печать символов Unicode в оболочке Bash (Mac OsX) - PullRequest
2 голосов
/ 17 июня 2011

У меня есть этот код в Java 1.6:

System.out.println("\u00b2");

, но на bash на OSX10.6 я получаю знаки вопроса, а не символы Юникода ...

на самом деле я хочу напечататьсимволы 176 177 178 в расширенном коде ascii (смотрите здесь http://www.asciitable.com/), чтобы создать какую-то графику на терминале bash ..

есть идеи?

спасибо

Ответы [ 4 ]

5 голосов
/ 17 июня 2011

Следующий код работает для меня в Terminal.app с поддержкой UTF-8 в Mac OS X 10.6.7:

# code taken from: 
# "Print Unicode characters to the Terminal with Java",
# http://hints.macworld.com/article.php?story=20050208053951714

echo '
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
class Test {
  public static void main (String[] argv) throws UnsupportedEncodingException {
  String unicodeMessage = "\u00b2\u2591\u2592\u2593";
  PrintStream out = new PrintStream(System.out, true, "UTF-8");
  out.println(unicodeMessage);
  }
}
' > test.java

javac test.java
java Test
0 голосов
/ 17 июня 2011

Прежде всего, вы должны быть уверены, что кодировка символов в вашем терминальном сеансе соответствует выводу вашего java-приложения.Скорее всего, вам нужен UTF-8, который, как я считаю, является стандартным для OS X.

Далее вам необходимо убедиться, что шрифт, используемый в вашей терминальной сессии, на самом деле содержит символы, которые вы хотите видеть.Они кажутся редкими и могут быть доступны не во всех шрифтах.

0 голосов
/ 17 июня 2011

Убедитесь, что Terminal > Preferences > Encodings проверил UTF-8.

0 голосов
/ 17 июня 2011

Является ли bash в UTF8?Введите команду locale и посмотрите, выглядит ли ваш LANG соответствующим (например, что-то вроде * en_GB.UTF-8 *).Если нет, обновите значение LANG и повторите попытку.

...