Görünmez Karakter Tespit Cihazı

Herhangi bir metin yapıştırın ve tespitci, içinde barındırdığı tüm görünmeyen karakterleri rapor eder: sıfır genişlikli boşluklar, yönlendirme işaretleri, BOM’ler, yumuşak çizgiler, kesintisiz boşluklar ve boş gibi görünür ancak arama, farklılaştırma ve kopyalama-kilitleme işlemlerinde engel oluşturan Unicode kontrol kod noktalarının topluluğu. Her tespit edilen karakter, kod noktası (U+200B), resmi Unicode adı ve dizideki konumuyla birlikte verilir; böylece bir sorunun nerede saklandığını belirleyip onu gidermenize olanak tanır.

Görünmeyen karakterleri nasıl tespit eder?

  1. 1

    Metni yapıştırın

    Şüpheli bir dizgi ekleyin: bir kod parçası, kopyalanan bir mesaj veya bir yapılandırma değeri.

  2. 2

    Taramayı başlatın

    Araç her kod noktasını inceleyerek görünmez veya biçim karakter listesine uygun olanları işaretler.

  3. 3

    Raporu gözden geçirin

    Her hit, konumunu (1'le indekslenmiştir), `U+HHHH` formatındaki kod noktasını ve Unicode adını (Sıfır Genişlikli Boşluk, BOM vb.) gösterir.

  4. 4

    Metni temizleyin

    Gizli karakterleri silmek veya görselleştirmek için "Değiştir" işleminden yararlanın, ardından arıza giderilmiş versiyonu yeniden yapıştırın.

Görünmez karakterler ve nereden geldikleri

Bu karakterler meşru nedenlerle kullanılmaktadır (metin düzeni, yazım yönü ve karakterlerin birleştirilmesi). Ancak tasarlandıkları bağlamdan çıkarak kodlara, yapılandırma dosyalarına, arama sorgularına veya kullanıcı adlarına girdiklerinde hata oluştururlar.

Dedektörün aradığı karakterler

Kod noktası Adı Genellikle nerede gizlice yer alır
U+200B Sıfır Genişlikli Boşluk Zengin metin editörleri, kelime işlemcileri
U+200C Sıfır Genişlikli Birleştirici Olmayan Fars ve Hindi tipografisi
U+200D Sıfır Genişlikli Birleştirici Emoji dizileri, Hint yazıları
U+200E Soldan sağa işaret Hem LTR hem de RTL yazım biçimlerini içeren metin
U+200F Sağdan sola işaret Aynı
U+202A..E Gömme / üstüne geçme Aynı; bazen kötü niyetle kullanılır (Trojan Kaynağı)
U+2028 Satır Ayırıcı Word’tan kopyalanır, JSON kodlayıcılarını bozar
U+2029 Paragraf Ayırıcı Aynı
U+FEFF Bayt Sıralaması İşareti Notepad’ta UTF-8 ile BOM biçiminde kaydedilen dosyalar
U+00A0 Bölünmez boşluk Word’tan alınmış tipografik boşluk
U+00AD Yumuşak tire Zengin metinde heceleme ipuçları

Gizli karakter hatasının yaygın belirtileri

  • “Eşit olması gereken” bir karakter dizisi karşılaştırması aslında eşit değildir. Değerleri bu araca kopyalayın ve bayt sayılarını karşılaştırın.
  • Gözle bakınca eşleşen ama kodda başarısız olan bir regex. Çoğunlukla boşluk gibi görünen bir U+00A0.
  • Bir JSON ayrıştırıcısı, yapıştırılan bir veride çöker. Genellikle baştaki bir BOM ya da JavaScript’in JSON içinde reddettiği bir dize değerindeki U+2028.
  • SEO başlığının uzunluğu yanlış. Sıfır genişlikli boşluk, görünür bir değişiklik olmadan başlığın sınırı aşmasına neden olur.

Trojan Source (Truva Kaynağı) yönü

Çift yönlü geçersiz kılma karakterleri (U+202E, U+2066..U+2069), kaynak kodun bir sırayla görüntülenirken başka bir sırayla derlenmesine neden olabilir; bu, “Trojan Source” saldırı sınıfıdır. Güvenilmeyen katkıda bulunanlardan gelen kodu incelerken, birleştirmeden önce onların farklarını bu dedektörden geçirin.

Sık Sorulan Sorular

Notepad ve bazı eski Windows araçları varsayılan olarak “UTF-8 ile BOM” ayarını kullanır. BOM (U+FEFF), Windows uygulamaları için uygun olsa da birçok shell iş akışını, PHP dosyalarını (BOM, <?php etiketinden önce çıktı olarak basılır) ve JSON ayrıştırıcılarını bozar.

Ekran üzerinde sıradan bir alan gibi görünse de davranışı farklıdır: satır kesintisine izin vermez ve tüm dillerdeki çoğu \s regex varyantıyla uyumlu değildir. Genellikle zengin metin kaynaklarından kopyalanmış dosya yollarında, e-posta adreslerinde ve kullanıcı adlarında yer alır.

Her zaman böyle değildir. Arapça, Farsça veya Devanagari yazısında sıfır genişlikli birleştirici ve birleştirici olmayan karakterler semantik olarak zorunludur. Kod, yapılandırma dosyaları ve çoğu İngilizce metinde bu karakterleri gerekli olmadıkça çıkarabilirsiniz. Doğal dil içeriğinde ise bu karakterleri çıkarmadan önce onları kontrol etmek için dedektörden yararlanın.

Hayır, analiz yalnızca mevcut istek için çalışır ve yanıt oluşturulduktan sonra yapıştırdığınız hiçbir şey saklanmaz veya kaydedilmez.

İlgili Araçlar

Araç diğer dillerde mevcuttur