Polskie zasady typograficzne (m.in. reguły stosowane przez wydawnictwa i korektorów) zalecają stawianie spacji nierozdzielającej po jednoliterowych spójnikach i przyimkach — „w", „i", „z", „o", „u", „a" — żeby taka samotna litera nigdy nie została „sierotą" na końcu wiersza, np. „w domu" zamiast „w domu".
Dlaczego to powoduje dziwne błędy
Ten sam znak, który w składzie tekstu rozwiązuje problem estetyczny, w kodzie tworzy niewidoczną pułapkę: porównanie ciągów nieoczekiwanie zwraca „nierówne", chociaż tekst na ekranie wygląda identycznie. Przyczyną jest często to, że jeden ciąg zawiera zwykłą spację, a drugi spację nierozdzielającą, skopiowaną np. z dokumentu Word stosującego te reguły. Wizualnie nie ma różnicy, dla komputera — jest.
Przycinanie (trim)
Trim usuwa białe znaki z początku i końca ciągu, pozostawiając zawartość w środku bez zmian. To standardowa operacja czyszczenia danych wejściowych użytkownika — przypadkowa dodatkowa spacja na początku pola formularza nie powinna wpływać na porównanie czy walidację wartości.
Zwijanie białych znaków
Inna popularna operacja to zamiana kilku kolejnych białych znaków jednym. Jest to przydatne dla tekstu skopiowanego z sformatowanego źródła (np. PDF czy tabeli), gdzie mogą wystąpić przypadkowe podwójne spacje lub tabulatory zamiast jednej spacji.
Do czego się przydaje
- Zdiagnozowanie, dlaczego porównanie dwóch pozornie identycznych ciągów nie przechodzi.
- Oczyszczenie tekstu skopiowanego z innego źródła ze zbędnych i niewidocznych znaków, w tym błędnie umieszczonych spacji nierozdzielających.
- Normalizacja danych wejściowych użytkownika przed zapisaniem do bazy danych.
Znaki o zerowej szerokości
Oprócz widocznych znaków białych istnieją znaki o zerowej szerokości (zero-width space, zero-width joiner) — w ogóle nie zajmują miejsca na ekranie, ale są obecne w tekście jako osobne znaki. Takie znaki czasem trafiają do tekstu przy kopiowaniu z niektórych stron czy komunikatorów i mogą niepostrzeżenie zepsuć porównanie ciągów lub wyszukiwanie, pozostając całkowicie niewidoczne nawet w edytorze tekstu.