2012-03-22 4 views
2

Я пишу очень простое консольное приложение на Java.Вывести символы не-utf8 на консоль

Проблема в том, что мне нужно выпустить кириллические и эстонские символы не-utf8 для консоли, но в Windows я получаю кучу странных символов, а в MacOsX я получаю только ???? а не что-то более читаемое.

Как я могу достичь своей цели?

--update 1--

локаль дал мне:

 
LANG= 
LC_COLLATE="C" 
LC_CTYPE="UTF-8" 
LC_MESSAGES="C" 
LC_MONETARY="C" 
LC_NUMERIC="C" 
LC_TIME="C" 
LC_ALL= 

Кажется, я застрял с этим UTF-8 вещь%)

Странная идея:

Есть ли способ получить консоль от eclipse и использовать ее за пределами eclipse?

+1

Сначала подумал: используйте шрифт, который поддерживает те конкретные значения unicode – mre

+0

Можно ли установить шрифт для System.out.println()? –

+0

Командная строка Windows DOS - это программа, отличная от Юникода: она поддерживает только определенные шрифты (щелкните правой кнопкой мыши значок вверху слева для доступа к ее свойствам), и это зависит от вашего текущего языка. У вас не так много выбора под Windows, кроме как изменить текущий ** Язык для программ, отличных от Unicode **, на нужный язык, но это глобальный параметр, который необходимо перезапустить http://technet.microsoft.com /en-us/library/cc721887(WS.10).aspx – ecle

ответ

1

Терминал Windows: программа терминалов cmd.exe не использует ту же кодировку, что и остальная часть ОС, и с Java у вас нет способа узнать, выполняется ли вы с терминала или нет. Вы должны установить шрифт, используемый cmd.exe в Lucida Console и переключить "code page" с chcp перед запуском программы:

  • кириллицы: использовать chcp 1251
  • Estonian: вероятно, вам нужно chcp 1257

OS X Терминал: насколько я знаю, терминал настроен для UTF-8, поэтому вы можете просто использовать UTF-8. Используйте команду locale, чтобы проверить свою кодировку.

+0

Хорошо Спасибо. По крайней мере, я знаю, что происходит. Также проверьте обновление. –

+0

** chcp ** отлично работает для кодовых страниц с однобайтовыми наборами символов, таких как Windows-1251 и Windows-1257. Но для двухбайтовых наборов символов, таких как унифицированные идеограммы CJK, вам все равно нужно установить свой языковой пакет на нескольких языках, чтобы установить страницу системного кода для определенного языка. В противном случае он вернет ** Ошибка неверной кодовой страницы **. – ecle

Смежные вопросы