document.title=utf8_to_b64("zółty"); tytuł strony przyjmuje wartość base64: eiUyNUYzJTI1dTAxNDJ0eQ== kod zamienia znaki w utf8 na base 64 dodatkowo kodując znaki specjalne po za ASCII.
Próbuję teraz przeprowadzić konwersję odwrotną z base64 na utf8 w php jednak uzyskuję zły wynik.
na podstawie funkcji z JS( b64toutf8)użyłem: wartosc zwrocona przez tutul strony $pageTitle=base64_decode("eiUyNUYzJTI1dTAxNDJ0eQ==");
$utf8=rawUrlDecode($pageTitle)
w zmiennej dostaję coś takiego: z%F3%u0142ty+g%u0142%u0105b Co zrobiłem źle ? Potrzebna jest jakaś dodatkowa funkcja dla php ?
@AtakObcych: wszystkie pliki mam kodowane w utf8. Tutaj jest jeszcze taki problem, że php chce użyć wyłącznie do testu, tzn do debugowania odczytanej wartości z base64. Gotowy odczyt będzie już w C++.
function utf8_to_b64( str ) {
return window.btoa(encodeURIComponent( escape( str )));
}
function b64_to_utf8( str ) {
return unescape(decodeURIComponent(window.atob( str )));
}
document.title=utf8_to_b64("zółty");
tytuł strony przyjmuje wartość base64:
eiUyNUYzJTI1dTAxNDJ0eQ==kod zamienia znaki w utf8 na base 64 dodatkowo kodując znaki specjalne po za ASCII.
Próbuję teraz przeprowadzić konwersję odwrotną z base64 na utf8 w php jednak uzyskuję zły wynik.
na podstawie funkcji z JS( b64toutf8)użyłem:
wartosc zwrocona przez tutul strony
$pageTitle=base64_decode("eiUyNUYzJTI1dTAxNDJ0eQ==");
$utf8=rawUrlDecode($pageTitle)
w zmiennej dostaję coś takiego:
z%F3%u0142ty+g%u0142%u0105bCo zrobiłem źle ? Potrzebna jest jakaś dodatkowa funkcja dla php ?
#php #javascript #webdev
Zaraz sprawdzę podaną przez Ciebie bibliotekę.
function b64EncodeUnicode(str) {return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
return String.fromCharCode('0x' +