2016-11-01 6 views
0

Я ИНТ значения сохраняются в списке, что я хочу, чтобы вывести как символы Юникода, например:C# как выводить символы Юникода?

//A List<int> named Kanji exists and has values 
    Console.OutputEncoding = Encoding.Unicode; 
    int i = 0; 
    while (i < Kanji.Count) 
    { 
     Console.WriteLine((char)Kanji[i]); 
     i++; 
    } 

Но это только возвращается? персонажи. Что мне делать? Значения int сами по себе хороши, я их тестировал.

+0

Если это только возвращает? то вам нужно, чтобы в вашем решении были установлены или активны японские языковые пакеты - что-то делать с символом unicode, который не отображается правильно –

+1

Это фактически имеет очень мало общего с C#; google вокруг о том, как заставить консоль работать правильно с помощью unicode - он не поддерживает его «из коробки», и ваше приложение очень мало контролирует большинство причин, почему это не сработает. – Luaan

ответ

1

Консоль, вероятно, не использует кодировку Юникод или Японию, и/или используемый шрифт не содержит требуемых символов.

Для получения дополнительной информации см. Console.OutputEncoding, а также раздел Unicode Support for the Console.

+0

Его код показывает 'Console.OutputEncoding = Encoding.Unicode;', поэтому я предполагаю, что «или» часть вашего комментария является единственной релевантной частью: «или используемый шрифт не содержит требуемые символы символов». – Quantic

+0

На странице, на которую я ссылаюсь, перечислены все предостережения, такие как поддержка UTF16 (который «Encoding.Unicode») только с .NET 4.5, и что консоль должна использовать шрифт TrueType с необходимыми глифами ... так что. NET 4.0 или ранее используется в качестве целевой среды, поддерживается только UTF8. – Lucero

+0

_ «В общем, консоль считывает входные данные и записывает выходные данные с помощью текущей кодовой страницы консоли, которую по умолчанию определяет языковой стандарт системы. Кодовая страница может обрабатывать только подмножество доступных символов Юникода, поэтому, если вы попытаетесь отобразить символы, которые не отображаются на определенной кодовой странице, консоль не сможет отображать все символы или точно представлять их »_ – stuartd