String uzunluğu nedir?

Bir string'in uzunluğu, neyi saydığınıza bağlıdır. İnsanlar karakterleri görür, ancak programlar kod noktalarını, UTF-16 kod birimlerini veya baytları sayar ve bu sayılar çoğu zaman farklı olur. 👍🏽 emojisi tek bir karakter gibi görünür, ancak 2 kod noktası, 4 UTF-16 kod birimi ve 8 UTF-8 baytından oluşur. JavaScript, Java ve C# uzunluk olarak UTF-16 kod birimlerini bildirir; veritabanları çoğu zaman baytları sınırlar ve form alanları satır sonlarını iki karakter olarak sayabilir.

Araç açıklaması

Bu araç bir string'in uzunluğunu aynı anda dört birim cinsinden gösterir ve bunu minimum ile maksimum uzunluk değerlerine göre kontrol eder. Bir kullanıcı adının, başlığın veya veritabanı değerinin bir sınıra sığıp sığmadığını ya da iki programın aynı metin için neden farklı uzunluklar bildirdiğini öğrenmek için kullanabilirsiniz. String çok uzunsa, bir karakteri ortadan bölmeden sınıra sığan kısaltılmış bir kopya elde edersiniz.

Özellikler

  • Karakterleri, Unicode kod noktalarını, UTF-16 kod birimlerini ve UTF-8 baytlarını sayar
  • Uzunluğu, seçtiğiniz birimde isteğe bağlı minimum ve maksimum değerlere göre kontrol eder
  • Sınırın altında kaç birim kaldığını, kaç birimin eksik olduğunu veya sınırın ne kadar aşıldığını gösterir
  • Çok uzun bir string'i emojileri, bayrakları veya aksanlı harfleri bölmeden kısaltır
  • Baştaki ve sondaki boşlukları yok sayabilir
  • Satır sonlarını HTML formlarının gönderdiği şekilde CR LF olarak sayabilir

Nasıl çalışır?

Karakterler, bir kişinin tek bir karakter olarak okuduğu birimler olan ve tarayıcının yerleşik Unicode metin bölümleme özelliğiyle bulunan grafik kümeleridir. Kod noktaları, string içindeki Unicode değerleridir. UTF-16 kod birimleri, JavaScript'te String.length tarafından döndürülen değerlerdir: Temel Çok Dilli Düzlem dışındaki karakterler, örneğin çoğu emoji, iki kod birimi kaplar. UTF-8 baytları, UTF-8 olarak kodlanan string'in boyutudur. Kısaltma, bir sonraki karakter maksimum değeri aşacak olana kadar karakterlerin tamamını korur.

İpuçları

  • Bir MySQL VARCHAR veya PostgreSQL varchar sınırı için Unicode kod noktalarına göre kontrol edin. Dizin anahtarı veya ağ protokolü alanı gibi bir bayt sınırı için UTF-8 baytlarına göre kontrol edin.
  • Bir HTML input'unun maxlength özniteliği UTF-16 kod birimlerini sayar; bu nedenle bir emoji iki birim kullanabilir.
  • Tarayıcılar textarea satır sonlarını CR LF olarak gönderir; bu nedenle uzunluğu kontrol eden bir sunucu her satır sonunu iki kez sayabilir. Eşleşmesi için CR LF seçeneğini etkinleştirin.