Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Text'i Doğru İşlemek: Normalization, Mojibake Teşhisi ve Base64
Aynı görünen iki string eşit olmayabilir çünkü "ş" hem tek code point (NFC) hem s + birleşen işaret (NFD) olarak yazılabilir; çözüm text'i sistemin sınırında NFC'ye getirmek. NFKC ile arama anahtarı, culture'a göre değişen arama, "ÅŸ" gibi mojibake'i hex dump ile teşhis edip onarmak, CSV/Excel BOM'u, HTTP charset, SQL Server'da N prefix'i ve UTF-8 collation, Base64/Base64Url ve JWT'nin neden şifreli olmadığı.
Unicode ve UTF-8/UTF-16: Code Point, Surrogate Pair, Rune ve Emoji'de Bozulan string.Length
string.Length emojide bozulur çünkü .NET ve JavaScript string'i UTF-16 code unit olarak sayar; aile emojisi tek bir grapheme ama 5 code point, 8 code unit ve 18 UTF-8 byte'tır. ASCII'den Unicode'a, code point, plane ve scalar value, UTF-8 ve surrogate pair'i elle encode etmek, Rune, u8 literal ve BOM, StringInfo ve Intl.Segmenter ile 280 karakterlik yorum sınırını doğru saymak.