- RFC 9839, yazılım geliştirme sırasında metin alanlarında yer alabilecek sorunlu Unicode karakterlerini açık biçimde tanımlar
- Bu RFC, farklı diller ve kütüphaneler arasında bu karakterlerin işlenmesindeki tutarsızlıktan doğan sorunları ele alır
- 9839, daha az sorunlu olan üç alt küme önerir ve bunların isteğe bağlı olarak kullanılabileceğini belirtir
- Mevcut PRECIS framework ile karşılaştırıldığında uygulanması daha kolay ve daha basittir
- RFC 9839 için bir Go dili kütüphanesi de birlikte yayımlandı ve pratik kullanımda yardımcı oluyor
Arka plan ve RFC 9839'a genel bakış
- Unicode, neredeyse tüm metin verisi işlemede standart olarak kullanılır
- Ancak gerçek veri yapıları veya protokol tasarımı sırasında tüm Unicode karakterlerine izin vermek sorun yaratabilir
- Paul Hoffman ve yazar, tekrar eden Unicode sorunları için net ölçütler sunmak amacıyla IETF'ye bireysel taslak sundu
- İki yıllık tartışmanın ardından resmî standart olarak kabul edildi ve RFC 9839 olarak yayımlandı
- Bu belge, sorunlu karakter türlerini, neden sorunlu olduklarını (teknik ve standart gerekçeleriyle) ve kullanıcıların seçip kullanabileceği üç alt kümeyi ayrıntılı biçimde açıklar
RFC 9839'un ana içeriği
- Yazılım ve ağ ortamlarında metin alanı tasarlanırken mutlaka başvurulması gereken bir belgedir
- RFC 9839, 10 sayfa uzunluğundadır ve IETF standart belgeleri arasında kısa sayılır
- Temelde yazılım geliştiriciler ve ağ mühendisleri için kolay anlaşılır biçimde yazılmıştır
Sorunlu Unicode karakterlerine örnekler
JSON'un tasarımı ve sınırları
- Bu durum, JSON'un yaratıcısı Doug Crockford'un sorumluluğu değildir
- JSON, Unicode'un yeterince olgunlaşmadığı bir dönemde tasarlandığı için karakter kümesini sıkı biçimde sınırlayamadı
- Artık standardı değiştirmek mümkün olmadığından, sorunlu karakterleri deneyimsel olarak dışlama yaklaşımı gerekir
IETF'nin PRECIS framework'ü ile farkı
- 2025 tarihli RFC 9839'dan önce de IETF, RFC 8264 (PRECIS Framework) gibi çeşitli standartlar sunuyordu
- Bu framework, uluslararasılaştırılmış dizelerin arındırılması, uygulanması ve karşılaştırılması yöntemlerini ayrıntılı biçimde ele alır
- 43 sayfa uzunluğundadır ve arka plan açıklamaları ile çözüm yaklaşımı kapsamlıdır
- PRECIS, Unicode sürümlerine güçlü biçimde bağımlıdır; karmaşıktır ve uygulanması zordur
- RFC 9839, kısa ve pratiktir; yeni protokoller tanımlanırken hızlı benimsenmesi daha kolaydır
RFC 9839'un alt kümeleri ve kullanım örnekleri
- 9839, üç gerçekçi alt küme sunar: scalars, XML, assignables
- Her alt küme, hariç tutulacak sorunlu karakter aralığını biraz farklı belirler
- Aşağıda, başlıca veri formatlarının ve RFC 9839 alt kümelerinin sorunlu karakterleri nasıl ele aldığına dair tablonun özeti yer alır
- CBOR, TOML, XML, YAML gibi bazı formatlar surrogate veya kontrol karakterlerini kısmen dışlar
- I-JSON, surrogate ve noncharacter karakterleri dışlar
- Genel JSON, Protobufs bunları dışlamaz
- XML, YAML, charset özellikleri nedeniyle noncharacter/kontrol kodlarının yalnızca bir kısmını hariç tutar
- Not: XML ve YAML, Basic Multilingual Plane dışındaki noncharacter karakterleri hariç tutmaz
Go dili için RFC 9839 kütüphanesi
- RFC 9839'un üç alt kümesi için karakter doğrulamasını destekleyen küçük bir Go kütüphanesi yayımlandı
- Yeterince test edildi; optimizasyon çalışmaları ise hâlâ sürüyor
- Gerçek üretim ortamlarında test ve geri bildirim memnuniyetle karşılanıyor
RFC 9839'un önemi ve hazırlık süreci
- RFC 9839, ortak yazarlar ve çok sayıda geri bildirim turunun ardından, 15'ten fazla taslak revizyonundan sonra resmen yayımlandı
- Topluluktaki birçok uzmanın tartışma ve katkıları sayesinde ilk taslaktan çok daha olgun bir belgeye dönüştü
- Katkıda bulunanlar “Acknowledgements” bölümünde belirtiliyor
RFC bireysel gönderim deneyimi
- RFC 9839, bireysel gönderim (individual submission) olarak ilerletildi
- Working Group üzerinden yürüyen geleneksel yönteme göre emek ve süreç yükü daha fazladır
- Working Group katılım deneyimiyle karşılaştırıldığında, geleneksel yöntem daha verimli ve daha fazla tavsiye edilir
Henüz yorum yok.