Арабский ответ Yahoo Weather содержит знаки вопроса вместо арабских символов - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь использовать последнюю версию API погоды Yahoo https://weather -ydn-yql.media.yahoo.com / forecastrss Работает нормально, но когда я устанавливаю язык (lang = ar-AE), он возвращаетJSON ответ с вопросительными знаками вместо арабских символов. например "city": "????????????" Для английского языка это нормально.

Я не сделалсмотрите в документации все, что связано с настройкой utf

Когда я открываю страницу погоды Yahoo https://www.yahoo.com/news/weather/united-arab-emirates/abu-dhabi/abu-dhabi-1940330?lang=ar-AE, она показывает данные на арабском языке, это означает, что код языка правильный

1 Ответ

0 голосов
/ 12 ноября 2019

Это был код, который я использовал в классе, чтобы узнать погоду. Этот код был скопирован из примера кода документации погоды Yahoo и изменен.

            string lURL = cURL + "?" +  cWeatherID + "&" + cUnitID + "&format=" + cFormat + string.Format("&lang={0}", this.Lang);

        var lClt = new WebClient();

        lClt.Headers.Set("Content-Type", "application/" + cFormat);
        lClt.Headers.Add("X-Yahoo-App-Id", this.AppID);
        lClt.Headers.Add("Authorization", _get_auth());

        byte[] lDataBuffer = lClt.DownloadData(lURL);

        string result = Encoding.ASCII.GetString(lDataBuffer);

Я обнаружил, что проблема в строке

string result = Encoding.UTF8.GetString(lDataBuffer);

Я изменил кодировку с ASCII до UTF8 и работает нормально.

...