C# 控制台窗口中未显示货币符号

C# 控制台窗口中未显示货币符号,c#,.net,C#,.net,我正试图在控制台窗口中打印带有货币符号的金额: 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.En

我正试图在控制台窗口中打印带有货币符号的金额:

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);
金额在手表窗口中显示正确,但在控制台窗口中显示不正确。

这是设计的

控制台窗口使用一些特殊字体显示(Lucida Console、ConsoleAs等)
该字体不需要您的货币符号,因此符号可能显示不正确

更新

根据,Lucida Console中不支持卢比符号


根据,它在控制台ASfont中受支持。

用于输出的编码可能不包括这些货币符号

尝试将控制台的输出编码设置为支持货币符号的编码:

Console.OutputEncoding = System.Text.Encoding.UTF8

没有任何理由就投反对票?无法理解为什么有人会投反对票或投票来结束这个伟大的问题。Jon skeet可能会帮助我。使用的文化是
”हिंदी (भारत)"
,或
“印地语(印度)”
。仅供参考,字符串变为
“₹ 123.54英寸
,即U+20B9(₹) 后跟空格和数字的常用ASCII表示形式。另请参见。未知符号将替换为问号之类的占位符(
)看一看:OP的问题代码已经包含了这个字符串。印度卢比是一个棘手的字符串;但它应该以Ascii和Unicode两种格式出现,所以这可能不是解决问题的方法,毕竟这些符号还有其他编码吗?是的,我刚刚发布了相关信息:)@TimothyGroote,这也发生在意大利货币符号上。