2014-12-17 5 views
11

Я пытаюсь напечатать сумму с символом валюты в окне консоли:символ валюты не отображается в окне консоли

string cultureCode = "hi-IN";//"it-IT"; 
decimal amount = 123.54M; 
CultureInfo cultureInfo = new CultureInfo(cultureCode);  
string strAmout=String.Format(cultureInfo, "{0:C}",amount); 

Console.OutputEncoding = System.Text.Encoding.UTF8; 

Console.WriteLine(strAmout); 

Сумма правильно отображать в окне просмотра, но не в окне консоли.

+2

Downvote без какой-либо причины? – Arshad

+0

не может понять, почему кто-то мог бы понизить или проголосовать, чтобы закрыть этот великий вопрос. – wal

+0

Джон skeet может помочь мне. – Arshad

ответ

3

Это по дизайну.

Консольное окно отображается с использованием специального шрифта (Lucida Console, Consolas и т. Д.).
Этот шрифт, который не нужен, имеет символ для вашей валюты, поэтому символ может отображаться некорректно.

UPDATE

Согласно this link, рупия знак не поддерживается Lucida Console шрифтом.

Согласно this link, поддерживается в Consolas шрифте.

+3

Неизвестные символы заменяются заполнителем как вопросительный знак ('?') –

+0

шрифт 'Consolas' не работает ... – Arshad

2

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

попробуйте установить выходную кодировку консоли, которая поддерживает символ валюты:

Console.OutputEncoding = System.Text.Encoding.UTF8 
+2

Посмотрите: код вопроса OP уже содержит эту строку. –

+0

haha ​​woops. слишком нетерпеливый. хорошо подмечено. –

+0

Индийская рупия - сложная штука; но он должен присутствовать как в Ascii, так и в Unicode, так что это, возможно, не решение вашей проблемы http://www.fileformat.info/info/unicode/char/20b9/index.htm –

Смежные вопросы