2013-09-26 4 views
2

Я пытаюсь создать программу командной строки, способную выводить разные языки.Вывод символов ирландского языка (cmd.exe) из C#

Есть ли способ установить кодировку для вывода в командной строке через Console.WriteLine?

Я хочу обменять между utf-8 и shift-JIS и не предполагать, что командная оболочка программы находится в правильном формате.

Просто чтобы добавить дополнительную информацию об этом. Мой текущий код считывает файл, который имеет специальные символы:

"Fadó, fadó" 

но выход не правильно отображать специальные символы:

"Fado, fado" 

Я просто с помощью Console.WriteLine:

foreach (string s in lines) 
{ 
    Console.WriteLine(s); 
} 

Я не понял, как установить кодировку для Console.WriteLine. Возможно ли это, или есть альтернатива, которую кто-то может указать?

+1

Похоже собственности [Console.OutputEncoding] (http://msdn.microsoft.com/en-us/library/system.console.outputencoding.aspx) может быть то, что вы хотите. – keyboardP

+1

Первое, что нужно сделать, это проверить, является ли проблема чтением или записью. См. Http://csharpindepth.com/Articles/General/Strings.aspx для некоторого кода, который поможет вам отлаживать подобные вещи. –

+0

Чтение в порядке, поскольку оно выводится в текстовом файле. Его просто консольный выход. Похоже, Console.OutputEncoding - это ответ. – merrua

ответ

0

Кажется, что вам нужно использовать кодировку Unicode.

string[] lines = new[] { "Fadó", "fadó" }; 
Console.OutputEncoding = Encoding.Unicode; 

foreach (string s in lines) { Console.WriteLine(s); } 
Смежные вопросы