İçeriğe atla
TextArray
%100 yerel

UTF-8 bayt sayacı

UTF-8 bayt, UTF-16 birimleri, kod noktaları ve grafikler cinsinden metnin gerçek boyutunu ölçün.

Giriş
Çıkış

UTF-8 bayt sayacı

Karakter sayısı ve bayt boyutu aynı şey değildir. UTF-8'de düz İngilizce harflerin her biri bir bayt alır, ancak "é" iki bayt alır, çoğu CJK karakteri üç alır ve 👋 gibi bir emoji dört alır; yani 160 karakterlik bir mesaj kolaylıkla 160 bayttan çok daha fazla olabilir. Herhangi bir metni yapıştırdığınızda, bu sayaç onun tam UTF-8 bayt boyutunu, JavaScript'in .length'inin bildireceği UTF-16 kod birimlerini, Unicode kod noktalarının sayısını, grafik sayısını (kullanıcı tarafından algılanan karakterler, yani bir 👨‍👩‍👧 ailesi bir olarak sayılır) ve satır sayısını ve ayrıca her iki kodlama için B, KB veya MB olarak depolanan boyutu bildirir.

Bu döküm, pratik soruları hızlı bir şekilde yanıtlıyor: Bu dize, bayt cinsinden ölçülen bir VARCHAR(255) sütununa, bir SMS segmentine, 64 KB'lik bir yük sınırına, bir HTTP başlık bütçesine, bir localStorage kotasına sığacak mı? Bir veritabanı neden "160 karakterlik" bir dizeden şikayetçi oluyor ve neden bir emoji bir sistemde iki, diğerinde ise bir karakter olarak sayılıyor? Sayaç, "uzunluk"un tüm rakip tanımlarını yan yana gösterir, böylece sınırınızın tam olarak hangisini kullandığını görebilirsiniz.

Satır sonları bayt boyutu için de önemlidir: Windows CRLF sonlarıyla kaydedilen bir dosya, Unix LF sonlarıyla kaydedilen aynı dosyadan satır başına bir bayt daha büyüktür. Satır sonları seçeneği, metni yapıştırılmış haliyle veya bir kez LF veya CRLF'ye dönüştürülmüş haliyle ölçmenizi sağlar.

Her şey standart TextEncoder API'si kullanılarak tarayıcınızda yerel olarak hesaplanır; yapıştırdığınız metin hiçbir zaman yüklenmez, dolayısıyla yapılandırma dosyalarının, belirteçlerin ve özel mesajların ölçülmesi güvenlidir.

FAQ

Bayt sayısı neden karakter sayısından daha yüksek?
UTF-8, değişken genişlikte bir kodlamadır: ASCII harfleri 1 bayt, vurgulu Latin harfleri 2, çoğu CJK karakteri 3 ve emoji 4 alır. Bu nedenle ASCII olmayan herhangi bir metin, bayt olarak karakterlerden daha büyüktür.
Kod noktaları ve grafikler arasındaki fark nedir?
Kod noktası tek bir Unicode değeridir; Grafik, okuyucunun tek bir karakter olarak gördüğü şeydir. ZWJ ile birleştirilen birkaç kod noktasından veya birleştiren vurgulara sahip harflerden oluşturulan Emoji, birden fazla kod noktası ama tek bir grafiktir.
Veritabanı sütun sınırı hangi sayıyı kullanır?
Veritabanına ve sütun tanımına bağlıdır - MySQL utf8mb4 VARCHAR, karakter sayısını sınırlarken, birçok bayt tabanlı sınır (Redis anahtarları, dizin boyutları, bazı API'ler) UTF-8 baytı sayar. Bu araç her ikisini de gösterir, böylece doğru olanı kontrol edebilirsiniz.
Satır sonları boyutu nasıl değiştirir?
Windows CRLF sonları satır sonu başına iki bayttır, Unix LF sonları ise bir bayttır. Metnin boyutunu her iki kuralla da kaydedileceği şekilde görmek için satır sonları seçeneğini değiştirin.
Metnim herhangi bir yere yüklendi mi?
Hayır. Sayma, yerleşik TextEncoder API'si ile tamamen tarayıcınızda çalışır ve metniniz asla cihazınızdan ayrılmaz.