Вместо русских букв знак вопроса. Как исправить?

Рейтинг: -1Ответов: 1Опубликовано: 19.01.2023
var test = JsonConvert.DeserializeObject<UserMatch>(File.ReadAllText("../../../test.json"));

    foreach (var i in test?.info?.participants) {
        if (i.summonerName == command.Data.Options.First().Value.ToString())
        {
            if (i.win == false)
            {
                Console.WriteLine("Поражение");
            }
            else if (i.win == true)
            {
                Console.WriteLine("Победа");
            }
        }
    }

Получаю значит JSON файл и вместо русских букв внутри него ???? из-за этого проверка через if не понимает (например никнейм призывателя "привет", а сравнивает он с ?????)

Ответы

▲ 0

Надо указать кодировку:

var test = JsonConvert.DeserializeObject<UserMatch>(File.ReadAllText("../../../test.json", Encoding.GetEncoding(1251)));

Либо же поменять кодировку файла на utf-8
Больше о кодировках, можно узнать в документации: https://learn.microsoft.com/ru-ru/dotnet/api/system.text.encodinginfo.getencoding?view=net-7.0