Gizli karakterler varsayılan olarak nasıl görüntülenir (ZERO WIDTH SPACE ie. & # 8203)


198

Bu yüzden haftasonumun bir bölümünü kaybettim ... joker - sıfır genişlik alanı. Google gruplarından bazı snippet'ler kullandım ve ikiye katlanmış karakterlerin olduğunu fark etmedim, çünkü Idea (11) bunları göstermedi, bu da uygulamamın yapılandırma dosyasını ayrıştırmada sorunlara neden oldu ... Bunu yanlışlıkla vi'da keşfettim. .

Harici editörleri kullanmadan IntelliJ'de (veya dosyaları incelemek için başka bir yol) bu tür şeyleri görüntülemenin herhangi bir yolu var mı?

IntelliJ 11 / Mac OS 10.7

düzenle - örnek

Bu iki satır tarayıcıda ve aynı zamanda Fikir'de aynı görünüyor. Sayfanın kodunda, ilk yorum satırında mysql://ve arasında gizli sıfır genişlik alanı olduğunu ve localhostbu da sorunlara neden olduğunu görebilirsiniz. Tabii ki 'joker' bekliyorsanız, aramayı kullanmayı ve değiştirmeyi deneyebilirsiniz, ancak kimse orada olmaması gereken işareti beklemez, özellikle de hiçbir şekilde göremezse.

#db.default.url="jdbc:mysql://​localhost/play-fullcalendar"
 db.default.url="jdbc:mysql://localhost/play-fullcalendar"

22
Bu karakter uluslararası bir antlaşma ile yasaklanmalıdır. Büyük bir dikkat dağıtıcı silah. Js konsolumda gizemli bir hatanın nedenini bulmaya çalışırken bir gün kaybettim. Cidden, sıfır genişlikli bir karakter? Bu bela için mükemmel bir tarif. UTF standartları komitesi ne düşünüyordu?
Nick

@Nick, JS'mi yüklemekte sorun yaşıyorum (dosyanın sonunda bir elmas içine soru işareti alıyorum) ve bunun bir kodlama sorunu olduğuna inanıyorum. Ben olsun Uncaught SyntaxError: Unexpected token ILLEGALve araştırma biraz bu gizli sembol problem olduğu fikrine götürdü. Bahsettiğiniz bu gizemli sıfır genişlikli karakteri nasıl bulabilirim? Sorunun bu olup olmadığını görmek için ...
Milkncookiez

Yanıtlar:


359

Ne demek istediğinizden emin değilim, ancak boşlukları göstermeyi kalıcı olarak açıp kapatabilirsiniz Settings -> Editor -> General -> Appearance -> Show whitespaces.

Ayrıca, yalnızca geçerli bir dosya için ayarlayabilirsiniz View -> Active Editor -> Show WhiteSpaces.

Düzenle:

Popüler bir konu gibi göründüğü için biraz boş zaman geçirdim, bu tür anormallikler için kodu incelemek için bir eklenti yazmıştım. Buna Sıfır Genişlikli Karakterler konumlandırıcısı denir ve bunu deneyebilirsiniz .


4
ellou 'Vic, cevap için teşekkürler. Maalesef bu seçenek, söz konusu konuda belirtilen 'sıfır genişlik alanını' göstermiyor. Karakterin var olduğundan eminim, yani yani ile görüntüleyebilir. Vi, ama
Fikirde

2
Anlıyorum .. Sanırım CrazyCoder'ün desteklenmediğini ya da bunun gibi bir şey olduğunu söylemesini beklemek zorundayız :)
Vic

5
IntelliJ-14.1 ile başlayarak gizliSettings -> Editor -> General -> Appearance -> Show whitespaces -> Leading | Inner | Trailing
Rob

4
Beyaz boşluk teklif verenlerinde nokta yapmak mümkün mü? Yüce gibi
OlehZiniak

2
@WillSewell, Settings -> Editor -> Color Scheme -> Generalo kategoriyi seçerek rengi seçerek o kategoriye gidebilirsiniz Text -> Whitespaces. Benim varsayılan 50 # 505050'den # 404040'a değiştirdim ve onları görünür ama rahatsız edici değil buluyorum
chaserb

81

Çok basit bir çözüm, dosyalarınızda normal olmayan bir ifade kullanarak ascii olmayan karakterler aramaktır. Bu, bir sınırla bulundukları tüm noktaları güzel bir şekilde vurgulayacaktır.

[^\x00-\x7F]Regex'i arayın ve kutuyu işaretleyin.

Sonuç şu şekilde görünecektir (karanlık modda):

sıfır genişlik alanı görünür hale getirildi


Teşekkürler, aslında kabul ettim ve Vic'un cevabını çözmek için oluşturduğu bir eklenti için cevabına bir ödül verdim, ki bu da cevabının sonunda bağlantılı.
biesior

2
Evet, gördüm. Haklı. Ancak bazı insanlar için sadece bu aramayı yapmak bir eklenti yükleyen çok daha hızlı bir çözüm olabilir.
Micros

i bir php betiği içinde WordPress geçiş için çok iyi biçimlendirilmiş HTML içeriği yapmak için kullanılır:$string = preg_replace( '/[^\x00-\x7F]/', null, $string ); htmlspecialchars_decode( htmlentities( html_entity_decode( $string ) ) );
aequalsb

@Micros. Normal ifade kullanarak dosyaları ascii olmayan karakterler için arayan pencereler için herhangi bir düzenleyici var mı? Benim durumumda bu tür hataları düzeltmek için '\ u11891' bulmam gerekiyor: Sözdizimi Hatası: Geçersiz karakter '\ u11891
user1788736

@ user1788736 Evet, birçok sözdizimi vurgulayıcı düzenleyici bunu desteklemektedir. Sublime Text veya WebStorm veya IntelliJ gibi JetBrains uygulamalarından birini kullanabilirsiniz.
Micros

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.