@WQP

Какая кодировка подойдёт для get запроса (замена base64)?

Здравствуйте, необходимо перевести строку в такую кодировку, которая не содержит символов ?, &, =. При этом чтобы её можно было легко перекодировать js или jq
  • Вопрос задан
  • 2598 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
var result = encodeURIComponent('кодированный текст here');
alert(result);
alert(decodeURIComponent(result));

Посмотреть пример.

Вариант с base64:
var result = $.base64.encode(encodeURIComponent("вот такой вот метод кодирования\nраз, два, три!"));
result = result.replace(/[\+]{1}/g, '@').replace(/[\=]{1}/g, '~').replace(/[\/]{1}/g, '$');
console.log(result);

result = result.replace(/[\@]{1}/g, '+').replace(/[\~]{1}/g, '=').replace(/[\$]{1}/g, '/');
console.log(result)
console.log(decodeURIComponent($.base64.decode(result)));

Результат:
Измененный вид Base64:
JUQwJUIyJUQwJUJFJUQxJTgyJTIwJUQxJTgyJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUI5JTIwJUQwJUIyJUQwJUJFJUQxJTgyJTIwJUQwJUJDJUQwJUI1JUQxJTgyJUQwJUJFJUQwJUI0JTIwJUQwJUJBJUQwJUJFJUQwJUI0JUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJTBBJUQxJTgwJUQwJUIwJUQwJUI3JTJDJTIwJUQwJUI0JUQwJUIyJUQwJUIwJTJDJTIwJUQxJTgyJUQxJTgwJUQwJUI4IQ~~

Возвращаем нормальный вид Base64:
JUQwJUIyJUQwJUJFJUQxJTgyJTIwJUQxJTgyJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUI5JTIwJUQwJUIyJUQwJUJFJUQxJTgyJTIwJUQwJUJDJUQwJUI1JUQxJTgyJUQwJUJFJUQwJUI0JTIwJUQwJUJBJUQwJUJFJUQwJUI0JUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJTBBJUQxJTgwJUQwJUIwJUQwJUI3JTJDJTIwJUQwJUI0JUQwJUIyJUQwJUIwJTJDJTIwJUQxJTgyJUQxJTgwJUQwJUI4IQ==

Декодируем Base64:
вот такой вот метод кодирования
раз, два, три!

Посмотреть пример.

С кодировками текста не стал разбираться, просто сделал encodeURIComponent/decodeURIComponent. Проблему с кодировками, в принципе, можно решить более человеческим способом, если это необходимо и есть желание :-)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
laska
@laska
PHP/JS разработчик
encodeURIComponent
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы