печать '\ u0000' на Java - PullRequest
       15

печать '\ u0000' на Java

2 голосов
/ 29 марта 2012

Когда я бегу

char c= '\u0000'; 
System.out.println(c);

в Eclipse, он печатает маленький квадрат, что означает нулевой символ.
Но он печатает «а», когда я запускаю его в CLI.
Затем я запускаю его на других компьютерах, некоторые печатают «а», другие печатают пробел.

Почему это случилось?

Моя ОС - Windows 7 professional-32bit. Другие системы - Windows XP.
Моя версия Java является jdk_1.6.0update12.

1 Ответ

2 голосов
/ 29 марта 2012

Это не печатает для меня:

public class Mkt {
 public static void main(String[] args) {
    char c= '\u0000'; 
    System.out.println("-" + c + "-");
  }
}

$ javac Mkt.java && java Mkt
--

Ubuntu 11.10 здесь:

$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Что нужно проверить / попробовать:

  • Изменить шрифт окна вашего терминала
  • Пробовали ли вы использовать другие версии Java на вашем компьютере?
  • Есть ли что-то другое между вашей машиной и другими, которые вы пробовали?
  • Попробуйте изнутри Cygwin
  • Попробуйте использовать другой эмулятор консоли, например, Консоль
  • Перенаправить в файл (java Mkt > some_file.txt) и посмотреть, что в нем, желательно с помощью какого-нибудь шестнадцатеричного редактора
  • Создайте небольшое приложение Swing и отобразите его в JTextArea , чтобы увидеть, отображает ли оно то же самое
  • Что показывает \u0001?
...