Проблема с кириллическими символами в качестве параметра URL - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь перевести некоторый текст, отправив запрос GET на https://translate.googleapis.com/ из приложения C #.

Запрос должен быть отформатирован следующим образом: "/ translate_a / single? Client =gtx & sl = BG & tl = EN & dt = t & q = Здравей Свят!"

где sl = является исходным языком, tl = является целевым языком, а q = является текстом для перевода.

Ответ представляет собой массив JSON с переведенным текстом идругие детали.

Проблема в том, что когда я пытаюсь перевести с болгарского на английский, результат ломается как:* Нет проблем при переводе с английского на болгарский язык (в URL нет кириллицы), поэтому я предполагаю, что проблема в запросе.

Также всякий раз, когда я отправляю запрос непосредственно изБраузер В результате правильно переведенный текст.

Как я это делаю:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Net.Http;
using System.Web;

class Program
{
    static void Main(string[] args)
    {          
        string ApiUrl = "https://translate.googleapis.com/translate_a/single?client=gtx&sl={0}&tl={1}&dt=t&q={2}";

        string targetLang = "en";
        string sourceLang = "bg";
        string text = "Здравей Свят!";

        text = HttpUtility.UrlPathEncode(text);

        string url = string.Format(ApiUrl, sourceLang, targetLang, text);

        using (var client = new HttpClient())
        {
            var result = client.GetStringAsync(url).Result;

            var jRes = (JArray)JsonConvert.DeserializeObject(result);
            var translatedText = jRes[0][0][0].ToString();
            var originalText = jRes[0][0][1].ToString();
            var sourceLanguage = jRes[2].ToString();
        }
    }       
}

Anу предложение будет оценено.

1 Ответ

0 голосов
/ 05 марта 2019

Благодаря этому комментарию Мне удалось получить правильно отформатированный ответ.Дело в том, что я не использую два важных параметра в URL:

т.е. = UTF-8

oe = UTF-8

URL должен выглядеть так:

https://translate.googleapis.com/translate_a/single?client=gtx&sl=BG&tl=EN&dt=t&q=Здравей%20Свят!&ie=UTF-8&oe=UTF-8

...