I am analyzing various currency formatting symbols based on culture info. But below code is not outputting proper currency symbols in console.
var price = 2587.789m;
Console.OutputEncoding = Encoding.UTF8;
var CultureDetails = new List<CultureInfo>
{
new CultureInfo("en-US"),
new CultureInfo("en-GB"),
new CultureInfo("en-IN"),
new CultureInfo("en-AU"),
new CultureInfo("zh-CN")
};
foreach (var culture in CultureDetails)
{
Console.WriteLine($"{culture.Name}" +
$" {culture.DisplayName} {price.ToString("C", culture)}");
}
Console.WriteLine("✌");
The console output is as follows.
en-US English (United States) $2,587.79
en-GB English (United Kingdom) £2,587.79
en-IN English (India) ? 2,587.79
en-AU English (Australia) $2,587.79
zh-CN Chinese (China) ?2,587.79
???????????
Currency symbols for "en-IN"(India) and "zh-CN" (China) is not displayed . In the same way emojis are also not displayed properly. After analyzing a bit I set Console.OutputEncoding to utf-8
Console.OutputEncoding = Encoding.UTF8;
at the beginning of the program and console is started outputting all characters properly.
en-US English (United States) $2,587.79
en-GB English (United Kingdom) £2,587.79
en-IN English (India) ₹ 2,587.79
en-AU English (Australia) $2,587.79
zh-CN Chinese (China) ¥2,587.79
✌
Is it possible to set the character encoding outside the program , I mean in OS level.