Подтвердить что ты не робот

Javascript encodeURIComponent не кодирует одинарные кавычки

Попробуйте:

encodeURIComponent("'@#$%^&");

Если вы попробуете это, вы увидите, что все специальные символы закодированы, за исключением одиночной кавычки. Какую функцию я могу использовать для кодирования ВСЕХ символов и использования PHP для их декодирования?

Спасибо.

4b9b3361

Ответ 1

Я не уверен, почему вы хотите, чтобы они были закодированы. Если вы хотите избежать одиночных кавычек, вы можете использовать .replace(/'/g, "%27"). Однако хорошие ссылки:

Ответ 3

Я нашел аккуратный трюк, который никогда не пропускает никаких персонажей. Я говорю, что все заменяют, ничего не принимают. Я делаю это так (URL-кодирование):

function encode(w){return w.replace(/[^]/g,function(w){return '%'+w.charCodeAt(0).toString(16)})}

function encode(w){return w.replace(/[^]/g,function(w){return '%'+w.charCodeAt(0).toString(16)})}

loader.value = encode(document.body.innerHTML);
<textarea id=loader rows=11 cols=55>www.WHAK.com</textarea>

Ответ 4

Как писал @Bergi, вы можете просто заменить все символы:

function encoePicture(pictureUrl)
{
 var map=
 {
          '&': '%26',
          '<': '%3c',
          '>': '%3e',
          '"': '%22',
          "'": '%27'
 };

 var encodedPic = encodeURI(pictureUrl);
 var result = encodedPic.replace(/[&<>"']/g, function(m) { return map[m];});
 return result;
}