Закодировать ссылку (url)

Закодировать ссылку можно через функцию rawurlencode().

$link = 'https://know-online.com/search?q='.rawurlencode('запрос');
$link; // https://know-online.com/search?q=%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81

// Декодировать строку
rawurldecode($link); // https://know-online.com/search?q=запрос

Функция rawurlencode() не экранирует символы -_.~

Также есть функция urlencode(), но рекомендуется использовать rawurldecode(), т.к. она кодирует строку по современному стандарту RFC 3986 (подробнее отличия rawurlencode и urlencode).