urlencode
не зависит от конкретной кодировки символов. Он просто просматривает байты, интерпретирует их как символы ASCII и заменяет любой байт, который либо недопустим в ASCII (0x80–0xFF), либо недопустим в обычном виде в URL.
Теперь к вашему вопросу: Да, использование urlencode
кодирует любую строку в любой кодировке символов для безопасного использования - но только в URL-запросе! Поскольку urlencode
форматирует ввод в соответствии с application / x-www-form-urlencoded , что отличается от «нормального» * 1012 * процента кодирования тем, как это пространство закодировано: в application / x-www-form-urlencoded пробелы заменяются на +
, тогда как «нормальное» кодирование процентов заменяет их на %20
.
Если вы хотите использовать «нормальное» процентное кодирование, используйте rawurlencode
.