Właśnie straciłem część mojego weekendu z powodu tego ... żartowniś - przestrzeń o zerowej szerokości. Właśnie użyłem fragmentów z grup google i nie rozpoznałem, że istnieją podwójne znaki, ponieważ Idea (11) ich nie pokazał, co powodowało problemy z analizowaniem pliku konfiguracyjnego mojej aplikacji ... Odkryłem go przypadkowo w vi .
Czy jest jakiś sposób wyświetlania takich rzeczy w IntelliJ (lub w inny sposób do sprawdzania plików) bez użycia zewnętrznych edytorów.
IntelliJ 11 / Mac OS 10.7
edycja - próbka
Te dwie linie wyglądają identycznie, w przeglądarce, a także w Idea. W kodzie strony widać, że w pierwszym - komentowanym wierszu jest ukryta przestrzeń zerowej szerokości między mysql://
i localhost
, co powoduje problemy. Oczywiście, jeśli oczekujesz tego „jokera”, możesz spróbować użyć wyszukiwania i zastąpić go, jednak nikt nie spodziewa się znaku, który nie powinien tam być, zwłaszcza jeśli nie widzi go w żaden sposób.
#db.default.url="jdbc:mysql://localhost/play-fullcalendar"
db.default.url="jdbc:mysql://localhost/play-fullcalendar"
źródło
Uncaught SyntaxError: Unexpected token ILLEGAL
i trochę badania doprowadziły mnie do myśli, że jest to ukryty problem, symbol. Jak znaleźć tę tajemniczą postać o zerowej szerokości, o której mówisz?Odpowiedzi:
Nie jestem pewien, co miałeś na myśli, ale możesz na stałe włączać i wyłączać wyświetlanie białych znaków
Settings -> Editor -> General -> Appearance -> Show whitespaces
.Możesz również ustawić go dla bieżącego pliku tylko w
View -> Active Editor -> Show WhiteSpaces
.Edytować:
Miałem trochę wolnego czasu, ponieważ wygląda to na popularny problem, napisałem wtyczkę, aby sprawdzić kod pod kątem takich nieprawidłowości. Nazywa się to lokalizatorem znaków o zerowej szerokości i możesz spróbować .
źródło
Settings -> Editor -> General -> Appearance -> Show whitespaces -> Leading | Inner | Trailing
Settings -> Editor -> Color Scheme -> General
, a następnie w obrębie tej kategorii, przejdź doText -> Whitespaces
. Zmieniłem kopalnię z domyślnego pierwszego planu # 505050 na # 404040 i widzę, że są widoczne, ale nie rozpraszają uwagiBardzo prostym rozwiązaniem jest przeszukiwanie plików w poszukiwaniu znaków innych niż ascii przy użyciu wyrażeń regularnych. To ładnie podkreśli wszystkie miejsca, w których znajdują się z ramką.
Wyszukaj
[^\x00-\x7F]
i zaznacz pole Regex.Wynik będzie wyglądał następująco (w trybie ciemnym):
źródło
$string = preg_replace( '/[^\x00-\x7F]/', null, $string ); htmlspecialchars_decode( htmlentities( html_entity_decode( $string ) ) );
Jeśli przyszedłeś tutaj, szukając wtyczki Jetbrains IDE, sprawdź ten boski kawałek
https://plugins.jetbrains.com/plugin/7448-zero-width-characters-locator
Daje kontrolę, której wszyscy pragną
źródło