Curl спецсимволы и Си?

Никак не могу отправить русский текст из Си через curl на гугл транслейт.

char url[4096];
strcpy(url, "http://translate.google.com/translate_tts?tl=ru&q=");
strcat(url, curl_easy_escape(curl_handle, text, strlen(text));

В text у меня находятся русские предложения. Он их переводит в формат %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1 и отправляю. Но гуглтранслейт читает их как попало, говорит про какие-то 3/4, 1/2, евро, градус... и проценты, уже что только не перепробовал. Может какие-то проблемы с кодировкой или ещё с чем?
  • Вопрос задан
  • 2435 просмотров
Пригласить эксперта
Ответы на вопрос 1
megat72
@megat72
Программист-разработчик
Uniform Resource Identifier (URI): Generic Syntax [RFC 3986]:
the data should first be encoded as octets according to the UTF-8 character encoding [STD63]; then only those octets that do not correspond to characters in the unreserved set should be percent-encoded

Т.е. да, дело скорее всего в кодировке: text перед подачей в curl_easy_escape должен быть закодирован в UTF-8.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы