Вы кодируете ú
как UTF-8 (проверьте кодировку вашего примера кода), поэтому urlencode
правильно кодирует его как %C3%BA
.
Вы более или менее ссылались на это:
$str = "\xFA"; # ú in LATIN-1
echo $str . ' -> ' . urlencode($str) . "\n" ;
Что дает ожидаемый результат, независимо от того, как вы кодируете php-код / -файл:
ú -> %FA
Демо , который использует этот сайтUTF-8 для хранения исходного кода.Если вы хотите, чтобы вывод отображался как LATIN-1, этот дополнительный пример сигнализирует браузеру о кодировке LATIN-1:
header('Content-Type: text/html; charset=latin-1');
$str = "\xFA"; # ú in LATIN-1
echo $str . ' -> ' . urlencode($str) . "\n" ;