CURL изменяет неанглийские символы при открытии URL

Я пытаюсь открыть URL с помощью curl end и повторяет текст на этой странице. URL-адрес отправляет параметры скрипту Python и создает файл в соответствии с параметрами. Итак, я посылаю параметры в функцию wordpress через ajax, эта часть работает, она получает параметры без каких-либо ошибок, затем я создаю URL с этим и использую curlopt_url, чтобы открыть его в бэкэнде. Затем ответьте эхом, чтобы отправить данные в ajax.

  function my_function() {
$param1 = $_REQUEST['p1'];
$param2 = $_REQUEST['p2'];
$url = "http://localhost:1234/handle?a=$param1&b=$param2";
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, $url);
$store = curl_exec ($ch);
echo substr($store, 1);
curl_close ($ch); exit();

Предположим, что p2 содержит неанглийские символы, такие как ş, ğ, ı и т. Д. Функция получает это правильно (я вижу это, когда я отображаю $ url вместо ответа), но в части CURLOPT_URL они меняются.
Кроме того, когда я открываю браузер формы URL, он работает нормально.

0

Решение

Из комментариев успеха OP я добавляю свое решение, так как ответ поможет будущим посетителям:

Вы должны использовать urlencode для не английских символов в URL.

$param2 = urlencode($_REQUEST['p2']);

Примечание:

Вместо использования кодировки для полного URL-адреса используйте конкретное поле или параметр, но иногда вам нужно кодировать полный URL-адрес в случае специальных символов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]