Вывод Unicode в командной строке Windows? - PullRequest
13 голосов
/ 24 июня 2009

Я написал небольшое Java-приложение, вывод которого включает символы Unicode. Когда я использую Eclipse для его запуска - я вижу все результаты, как и ожидалось.

Люди, которые должны использовать приложение, будут запускать его как файл jar. Я думал, что они могут использовать стандартное окно cmd, но в этом окне Unicode отображается как Gibberish.

Есть ли способ заставить "окно cmd" распознавать символы Юникода и отображать их правильно? Или есть какой-нибудь инструмент для простого запуска jar-файла и получения правильного вывода?

Кстати - перенаправление вывода в файл работает нормально, но программа интерактивна, так что это не будет хорошим решением.

Редактировать: Спасибо всем за предложения. Кажется, что в шрифтах cmd нет нужных мне символов, поэтому изменение кодовой страницы не решило мою проблему.

Я нашел способ , чтобы добавить больше моноширинных шрифтов в консоль, но после того, как я добавлю им любое изменение, которое я хочу сделать относительно шрифтов (даже выбирая один из исходных шрифтов другого размера) - игнорируется.

Я думаю, что я просто попробую с другим инструментом, который более легко поддерживает выбор другого шрифта.

Ответы [ 6 ]

11 голосов
/ 24 июня 2009

Ссылка: Java Unicode в командной строке Windows

Попробуйте chcp 1252 или chcp 65001 из командной строки. С Lucida Console или другой поддержкой шрифтов.

1 голос
/ 24 июня 2009

Проблема в шрифте, с которым консоль Windows отображает вывод. К сожалению для вас, это пользовательская настройка.

Я рекомендую вам предложить своим пользователям установить шрифт консоли Windows на Lucida Console. Этот шрифт должен иметь возможность обрабатывать широкие символы / символы Юникода.

0 голосов
/ 01 июня 2016

В C++/C просто используйте это: system("chcp 65001");

Не забудьте изменить шрифт консоли на Lucida Console

0 голосов
/ 10 июня 2014

UTF-16 на cmd.exe

    Open/run cmd.exe
    Click on the icon at the top-left corner
    Select properties
    Then "Font" bar
    Select "Lucida Console" and OK.
    Write Chcp 10000 at the prompt
    Finally dir /b

Также от Существует ли командная оболочка Windows, которая будет отображать символы Юникода?

CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT
0 голосов
/ 24 июня 2009

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

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main( string[] args )
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            Console.WriteLine( "日本語です" );
            Console.Write( "Finished. Press a key. " );
            Console.ReadLine();
            return;
        }
    }
}

Я проверю, является ли ответ конкретно "Не может быть сделано". Другие возможности для проверки: используйте другую оболочку. то есть Powershell? Я посмотрю, сработает ли это.

Однако вы можете сделать:

ConsoleApplication1.exe > output.txt
notepad.exe output.txt

Отказ от ответственности : Мой пример - C #, но консольное приложение все еще должно работать как таковое.

А пока что смотрите на такие результаты.

0 голосов
/ 24 июня 2009

попробуйте CMD / c / U java your.jar

...