VDT2
@VDT2
Java

Как декодировать Base64 с сохранением UTF-8?

Закодировал скрипт содержащий кириллические переменные.
При расшифровке любым ОнЛайн сервисом, на выходе получаю идеальный результат.
Если пытаюсь расшифровать на сайте, кириллица превращается в козябры (ISO-8859-1).

Расшифровка идет след. образом:

eval(
      atob(
        <Закодированная строка>
      )
  );
  • Вопрос задан
  • 1072 просмотра
Решения вопроса 3
VDT2
@VDT2 Автор вопроса
Java
РЕШЕНИЕ:

function b64DecodeUnicode(str) {
    // Going backwards: from bytestream, to percent-encoding, to original string.
    return decodeURIComponent(atob(str).split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));
}

b64DecodeUnicode('4pyTIMOgIGxhIG1vZGU=');
b64DecodeUnicode('Cg==');
Ответ написан
Комментировать
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
$str = '0K3RgtC+INC30LDQutC+0LTQuNGA0L7QstCw0L3QvdCw0Y8g0YHRgtGA0L7QutCw';
echo base64_decode($str);
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$str = "Закодированная строка";
print base64_encode($str);
// 0JfQsNC60L7QtNC40YDQvtCy0LDQvdC90LDRjyDRgdGC0YDQvtC60LA=

function atou(b64) {
  return decodeURIComponent(escape(atob(b64)));
}
const b64 = '0JfQsNC60L7QtNC40YDQvtCy0LDQvdC90LDRjyDRgdGC0YDQvtC60LA='
console.log(atou(b64))
// Закодированная строка
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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