1 year ago

#326751

test-img

Deepak Koshy

How to display emoji and other currency symbols in a C# Console Application

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.

c#

console-application

currency

.net-6.0

cultureinfo

0 Answers

Your Answer

Accepted video resources