Вывод Unicode в командной строке Windows?
Я написал небольшое Java-приложение, вывод которого включает символы Unicode. Когда я использую Eclipse для его запуска, я вижу все результаты, как и ожидалось.
Люди, которые должны использовать приложение, будут запускать его как файл jar. Я думал, что они могут использовать стандартное окно cmd, но в этом окне Unicode отображается как Gibberish.
Есть ли способ заставить "окно cmd" распознавать символы Юникода и отображать их правильно? Или есть какой-нибудь инструмент, чтобы легко запустить файл JAR и получить правильный вывод?
Кстати, перенаправление вывода в файл работает нормально, но программа интерактивная, так что это не будет хорошим решением.
Изменить: Спасибо всем за предложения. Кажется, что в шрифтах cmd нет нужных мне символов, поэтому изменение кодовой страницы не решило мою проблему.
Я нашел способ добавить больше моноширинных шрифтов в консоль, но после того, как я добавлю их, любое изменение, которое я хочу сделать относительно шрифтов (даже выбирая один из оригинальных шрифтов другого размера), игнорируется.
Я думаю, что я просто попробую с другим инструментом, который поддерживает выбор другого шрифта легче.
6 ответов
Ссылка: Java Unicode в командной строке Windows
Пытаться chcp 1252
или же chcp 65001
из командной строки. С Lucida Console или другой поддержкой шрифтов.
В C++/C
просто используйте это: system("chcp 65001");
Не забудьте изменить шрифт консоли на Lucida Console
Проблема заключается в шрифте, с которым консоль Windows отображает вывод. К сожалению для вас, это пользовательская настройка.
Я рекомендую вам предложить своим пользователям установить шрифт консоли Windows в Lucida Console. Этот шрифт должен иметь возможность обрабатывать широкие символы / символы Юникода.
Для любых ответов, проверьте это сначала. Это простая консольная программа, которая проверяет, что изменение шрифта на самом деле не работает.
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#, но консольное приложение все еще должно работать как таковое.
И пока смотрите результаты.
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, которая будет отображать символы Unicode?
CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT