JavaScript İle Bir Metni Base64 'e Kodlamak

05.08.2017
• Yazilim

Base64 kodlamak (encoding) ve bu kodlamayı çözmek (decoding) için btoa () ve atob () javascirpt fonksiyonlarını kullanabilirsiniz.

Btoa () , her karakteri 8 bitlik bir baytı temsil ettiği bir "dize" kabul eder - 8 bit olarak gösterilemeyen karakterleri içeren bir dize gönderirseniz muhtemelen çalışmayacaktır. Aslında dize bir bayt dizisi olarak ele alınsa bu bir problem değildir, ancak başka bir şey yapmaya çalışıyorsanız önce dönüşüüreceğiniz ifadeyi temizlemelisiniz. Bu temizleme işlemi için

 replace (/[a-zA-ZüğişçöÜĞİŞÇÖ]/g,"")

regex ile replace kodunu kullanabilirsiniz. Sonuçta girdi olarak UTF-8 verdiğiniz sürece kod çalışacaktır.

Atob () da tıpkı btoa gibi her karakteri 8 bitlik bir baytı temsil ettiği bir "dize" döndürür, yani değeri 0 ile 0xff arasında olacaktır. Bu ASCII olduğu anlamına gelmez - ancak bu işlevi kullanıyorsanız, girdi olarak bir metin değil ikili verilerle çalışmanız beklenir. Yani base64 ü alınmış ve çözülmeyi bekleyen bir girdi vermelisiniz.

Kullanımı:

function tob64 ( str ) {
return window.btoa (unescape (encodeURIComponent ( str ) ) );
}

function fromb64 ( str ) {
return decodeURIComponent (escape (window.atob ( str ) ) );
}


Örnek:

<meta charset="UTF-8">
< script>
function tob64 ( str ) {
return window.btoa (unescape (encodeURIComponent ( str ) ) );
}

function fromb64 ( str ) {
return decodeURIComponent (escape (window.atob ( str ) ) );
}

a=tob64 ('✓ Hadi Base 64 ile kodlayalım:üğişçöÜĞİŞÇÖ');
//
alert (a);
b=fromb64 ("4pyTIEhhZGkgQmFzZSA2NCBpbGUga29kbGF5YWzEsW06w7zEn2nFn8Onw7bDnMSexLDFnsOHw5Y=");
alert (b);
< /script>

Kolay Gelsin...