На самом деле даже с JavaScript encodeURIComponent и PHP rawurlencode они тоже не совсем одинаковые, например, символ '(', JavaScript encodeURIComponent JavaScript не будет преобразовывать его, однако PHP rawurlencode преобразует его в% 28. После некоторых экспериментов и советовдругие, такие как этот вопрос другой вопрос Stackoverflow .
Я нашел окончательное решение здесь .
Все, что вам нужно сделать, это использовать следующую команду добавлениякод
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
Теперь они будут ИМЕННО такими же, например
fixedEncodeURIComponent(yourUrl) (JavaScript) = (PHP) rawurlencode(yourUrl)
нет проблем с декодированием, вы можете использовать decodeURIComponent () для JavaScript и rawurldecodeдля PHP