Görünmez karakterler nedir?

Görünmez karakterler, görünür bir glifsi olmayan ancak yine de bir dizede yer kaplayan ve yazılımın metni nasıl işlediğini veya oluşturduğunu etkileyen Unicode kod noktalarıdır. Bunlar kontrol karakterlerini (sekme ve satır beslemesi gibi), format karakterlerini (sıfır genişlikli birleştiriciler ve yönlendirme işaretleri gibi), çeşitli boşluk varyantlarını ve Bayt Sırası İşareti (BOM) gibi özel işaretçileri içerir. Hiçbir şey gibi göründükleri için, düz metin editöründe tespit edilmesi son derece zordur ve ince hatalar, bozuk düzenler ve veri işleme hatalarının yaygın bir kaynağıdır.

Araç açıklaması

Görünmez Karakterler Görüntüleyicisi, her görünmez karakteri yerinde görünür bir sembol olarak oluşturan etkileşimli bir metin editörüdür. Herhangi bir metni yapıştırın veya yazın ve her gizli karakter hemen küçük bir sembolik glif ile değiştirilir — sekmeler olarak görünür, boşluklar · olarak, sıfır genişlikli boşluklar · olarak, yönlendirme işaretleri / olarak, BOM olarak ve benzeri şekilde. Herhangi bir glif üzerine geldiğinizde, karakterin tam adı ve Unicode kod noktasını gösteren bir araç ipucu görüntülenir. Hiçbir şey editörden çıkmaz; tüm oluşturma tarayıcınızda yerel olarak gerçekleşir.

Örnekler

Giriş metni (ham) Görüntüleyicide gördüğünüz
Hello\u200BWorld (sözcükler arasında sıfır genişlikli boşluk) Hello·World ve · glifi U+200B'yi işaretliyor
\u202Eright-to-left override →right-to-left override başında yönlendirme glifi ile
line one\r\nline two Satır sonu öncesinde satır başı dönüşü ve satır beslemesi glifleri
\uFEFFstart of file ▯start of file 0 konumunda BOM'u gösteriyor

Özellikler

  • Satır içi oluşturma: Görünmez karakterler, ayrı bir panelde değil, doğrudan editör içinde glif olarak gösterilir, böylece bunları çevreleyen metinle birlikte görürsünüz
  • Geniş karakter kapsamı: C0 ve C1 kontrol karakterlerini, tüm adlandırılmış Unicode format karakterlerini, Unicode boşluk varyantlarını (en boşluğu, em boşluğu, saç boşluğu, dar bölünemez boşluk vb.), yönlendirme biçimlendirme karakterlerini, varyasyon seçicilerini, etiket karakterlerini ve BOM'u işler
  • Araç ipuçları: Herhangi bir glif üzerine geldiğinizde karakterin tam Unicode adı ve kod noktası görüntülenir (örneğin, Zero Width Space — U+200B)
  • Standart boşluk vurgulama: Normal boşluklar ve sekmeler CodeMirror'ın yerleşik boşluk işaretçileri kullanılarak vurgulanır, bunları normal metinden görsel olarak ayırt eder
  • Düz metin modu: Editör düz metin modunda kalır, böylece özel karakterler yazarken asla yeniden yorumlanmaz veya değiştirilmez

Kullanım durumları

  • Kopyala-yapıştır yapıtlarında hata ayıklama: PDF'lerden, web sayfalarından veya kelime işlemcilerinden kopyalanan metin genellikle sıfır genişlikli boşluklar, yumuşak tireliler veya bölünemez boşluklar taşır ve bunlar dize karşılaştırmalarında ve arama sonuçlarında uyuşmazlıklara neden olur
  • Veri dosyalarını inceleme: CSV, JSON veya günlük çıktısını yapıştırarak verileri bir veritabanına veya ayrıştırıcıya aktarmadan önce beklenmeyen kontrol karakterlerini (null baytları, satır başı dönüşlerini, BOM'u) bulun
  • Web ve kod hata ayıklaması: Kullanıcı tarafından sağlanan girişi veya API yanıtlarını, oluşturmayı bozabilecek veya güvenlik sorunlarına neden olabilecek gizli yönlendirme işaretleri veya format karakterleri açısından kontrol edin

Nasıl çalışır

Araç, editörün görünür görüntü alanındaki her karakteri yineleyen özel bir uzantı ile CodeMirror 6 kullanır. Her kod noktası için bilinen görünmez karakterlerin bir arama tablosunu kontrol eder, Unicode özellik sınıflarına karşı test eder \p{Cc} (kontrol) ve \p{Cf} (format), ve varyasyon seçicilerini ve etiket karakter aralıklarını algılar. Eşleşen karakterler, karşılık gelen sembol glifi gösteren satır içi dekorasyon widget'ları ile değiştirilir. Normal boşluklar ve sekmeler CodeMirror'ın yerleşik highlightWhitespace uzantısına devredilir.