5 dk okuma

Unicode metin Base64 olarak nasıl doğru kodlanır?

UTF-8 baytları, btoa sınırlaması, emoji ve Türkçe karakterlerle güvenli Base64 dönüşümü.

Kısa cevap

Unicode metni Base64'e çevirmeden önce UTF-8 baytlarına dönüştürmek gerekir. JavaScript `btoa()` doğrudan yalnızca tek bayt aralığındaki karakterleri kabul ettiği için emoji veya birçok dil karakterinde ham kullanımı hata ya da bozuk sonuç üretebilir.

Bu güncellemede ne değişti?

30 Temmuz 2026

UTF-8 dönüşüm adımı ve tarayıcı API örneği netleştirildi.

Doğru tarayıcı akışı nedir?

`TextEncoder` metni UTF-8 baytlarına dönüştürür. Baytlar güvenli bir binary string'e çevrildikten sonra Base64 üretilebilir; çözme tarafında sıra tersine çevrilir ve `TextDecoder` kullanılır.

URL-safe Base64 neyi değiştirir?

URL-safe varyant, `+` yerine `-`, `/` yerine `_` kullanır; padding bazen kaldırılır. Alıcı sistemin padding ve alfabe beklentisi doğrulanmalıdır.

Dönüşüm nasıl test edilir?

Türkçe `çğıöşü`, Korece, Arapça ve emoji içeren bir test dizesini kodlayıp geri çözün. Sonucun kod noktaları girişle aynı olmalıdır.

Sık sorulan sorular

btoa neden emoji ile hata verir?

Emoji UTF-16 içinde birden fazla kod birimi ve UTF-8 içinde birden fazla bayt gerektirir; btoa doğrudan Unicode metin API'si değildir.

Padding kaldırılabilir mi?

Yalnızca hedef protokol izin veriyorsa; çözmeden önce uzunluğa göre geri eklemek gerekebilir.

Kaynaklar