Подтвердить что ты не робот

Выход Unicode в командной строке Windows?

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

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

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

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

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

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

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

4b9b3361

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

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

И покажите результаты таким образом.

Ответ 6

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

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