Sözlük

Karakter kodlaması

metin kodlaması

Karakter kodlaması, karakterlerin veya kod noktalarının bayt dizileriyle nasıl gösterilip geri çözüleceğini tanımlar.

Tanım

Karakter kodlaması, metin öğelerinin saklama ve iletim için sayı veya baytlara nasıl çevrileceğini ve yeniden metin yapılacağını belirler. Gönderici ile alıcı aynı kodlamayı kullanmalıdır.

ASCII, UTF-8, UTF-16 ve eski kod sayfaları kodlama veya şemalardır. Unicode repertuvarı ve kod noktalarını; UTF-8 ile UTF-16 somut gösterimi tanımlar.

Nasıl çalışır?

Kodlayıcı geçerli bayt dizisini eşler, çözücü ters kuralları uygular. UTF-8’de A, 41; , E2 82 AC baytlarıdır. Değişken uzunluklu kodlamalar farklı sayıda bayt kullanır.

HTTP charset, dosya bildirimi veya protokol doğru çözücüyü belirtir. Bağlam olmadan aynı baytlar farklı metin üretebilir.

Pratik örnek

E2 82 AC baytları UTF-8 olarak çözüldüğünde verir. İlgisiz tek baytlı kodlamayla başka karakterler oluşur; bu görünür bozulmaya mojibake denir.

Dönüştürme, kaynağı doğru çözmeyi ve karakterleri hedefte yeniden kodlamayı gerektirir. Yalnız etiketi değiştirmek baytları dönüştürmez.

Hatalar ve tuzaklar

Geçersiz dizi reddedilebilir veya U+FFFD ile değiştirilebilir. Hedef kodlama karakteri gösteremiyorsa hata, değiştirme veya veri kaybı olur.

Bayt sırası işareti, endianness, Unicode normalleştirme ve satır sonları ilgili ama ayrı konulardır. Karakter kodlaması şifreleme değildir.

Sık sorulan sorular

Hayır. Unicode noktaları ve özellikleri atar; UTF-8 bunları baytlarla kodlar.

Baytlar yanlış kodlamayla çözülmüş veya hedef karakterleri gösteremediği için değiştirilmiş olabilir.

Hayır. Bazı baytlar birkaç kodlamaya uyar, özellikle kısa ASCII metni. Meta veri, BOM veya bağlam gerekir.

Ayrıca bakınız