Как поменять денежные знаки в C#?

Это моя задача (код)

Вот что выводит в консоль

Как поменять денежные знаки в C#. Прочитал разные ранние ответы на этот вопрос в других комьюнити. Но решение не нашёл

Моя задача: научиться, вместо знака вопроса (кракозябры), выводить валюту какого-то другого региона (например доллары, гривны и тд.)!

Что я уже делал ранее:

  1. Менял регион через настройки ПК. Путь к параметру Регион/ Дополнительные параметры даты, времени, региона/ Региональные стандарты/ Дополнительно/ Изменить язык системы/ Английский (США)
  2. Поменял кодировку консоли на, 65001 - Кодировка UTF-8

Текущая кодовая страница


Ответы (1 шт):

Автор решения: Alexander Petrov

Кодировку консоли можно поменять непосредственно в коде:

Console.OutputEncoding = Encoding.UTF8;

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

Сделать это можно как глобально:

CultureInfo.CurrentCulture = new CultureInfo("en-US");
// или
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

так и задавая желаемую культуру непосредственно в методах форматирования:

var formatProvider = new CultureInfo("en-GB");

Console.WriteLine(string.Format(formatProvider, "{0:c}", price));
Console.WriteLine(price.ToString("c", formatProvider));
→ Ссылка