JavaScript'te bir dizeyi Base64'e nasıl kodlayabilirsiniz?
Bir PNG görüntüsünü Base64 dizesine kodlayabilen bir PHP betiğim var.
Aynı şeyi JavaScript kullanarak yapmak istiyorum. Dosyaları nasıl açacağımı biliyorum ama kodlamayı nasıl yapacağımdan emin değilim. İkili verilerle çalışmaya alışık değilim.
744
3
base64 kodlamasına dönüştürmek ve bu kodlamadan dönüştürmek için
btoa()
veatob()
kullanabilirsiniz.Yorumlarda bu işlevlerin neyi kabul ettiği/döndürdüğü ile ilgili bazı karışıklıklar var gibi görünüyor, bu yüzden...
btoa()` her karakterin 8 bitlik bir baytı temsil ettiği bir "string" kabul eder - 8 bitle temsil edilemeyen karakterler içeren bir string geçerseniz, muhtemelen kırılacaktır. Bu bir sorun değildir eğer dizgiyi gerçekten bir bayt dizisi olarak ele alıyorsanız, ancak başka bir şey yapmaya çalışıyorsanız, önce onu kodlamanız gerekecektir.
atob()
her karakterin 8 bitlik bir baytı temsil ettiği bir "string" döndürür - yani değeri
0ile
0xff` arasında olacaktır. Bu ASCII olduğu anlamına gelmez - muhtemelen bu fonksiyonu kullanıyorsanız, metinle değil ikili verilerle çalışmayı bekliyorsunuzdur.Ayrıca bakınız:
[Buradan][1]:
Sunny'nin kodu, "this" referansları nedeniyle IE7'de kırılması dışında harika. Bu tür referansları "Base64" ile değiştirerek düzeltildi: