Białe znaki - wartości testowe
Znaki, które zajmują miejsce albo tylko udają, że je zajmują, i których w formularzu nie da się zobaczyć. 12 wartości, każda z tym, co psuje, i z tym, co zamiast tego robi poprawna aplikacja.
Wpisuj je po jednej skrótem AltShiftN
w palecie albo weź wszystkie do skryptu poleceniem nkb emit whitespace.
Spacja na końcu
whitespace/trailing-space
Kowalski
Kowalski\u0020
- kończy się spacją
- 9 grafemów
- 9 punktów kodowych
- 9 bajtów
- 9 jednostek UTF-16
- Co psuje
- Przeglądarka i serwer różnie porównują login i adres e-mail. Konto zostaje założone, ale nie da się go znaleźć.
- Co robi poprawna aplikacja
- Przycinana wszędzie albo wszędzie zachowywana - nigdy jedno przy rejestracji, a drugie przy logowaniu.
Spacja na początku
whitespace/leading-space
Kowalski
\u0020Kowalski
- zaczyna się spacją
- 9 grafemów
- 9 punktów kodowych
- 9 bajtów
- 9 jednostek UTF-16
- Co psuje
- Sortowanie stawia rekord na początku każdej listy, a wyszukiwanie dokładnego dopasowania nigdy go nie znajduje.
- Co robi poprawna aplikacja
- Ta sama zasada przycinania co w całej reszcie aplikacji.
Jedna spacja
whitespace/space-only
\u0020
- zaczyna się spacją
- kończy się spacją
- 1 grafem
- 1 punkt kodowy
- 1 bajt
- 1 jednostka UTF-16
- Co psuje
- Przeglądarka uznaje pole za wypełnione, a serwer za puste, albo odwrotnie.
- Co robi poprawna aplikacja
- Jeden spójny werdykt po obu stronach co do tego, czy pole jest puste.
Trzy spacje o zerowej szerokości
whitespace/zero-width-space-x3
abcd
ab\u200B\u200B\u200Bcd
- 3 znaki o zerowej szerokości
- 7 grafemów
- 7 punktów kodowych
- 13 bajtów
- 7 jednostek UTF-16
- Co psuje
- Liczniki znaków, porównywanie i usuwanie duplikatów widzą inną wartość niż człowiek.
- Co robi poprawna aplikacja
- Zapisane i zwrócone bez zmian albo odrzucone z komunikatem, który nazywa te znaki.
Twarda spacja między słowami
whitespace/nbsp-between-words
JanKowalski
Jan\u00A0Kowalski
- 1 spacja, która nie jest zwykłą spacją
- 12 grafemów
- 12 punktów kodowych
- 13 bajtów
- 12 jednostek UTF-16
- Co psuje
- Wyszukiwanie pisowni ze zwykłą spacją nigdy nie znajduje rekordu, a eksporty i korespondencja seryjna na zawsze zachowują niewidoczną różnicę.
- Co robi poprawna aplikacja
- Traktowana przez wyszukiwanie jak zwykła spacja albo normalizowana przy zapisie - konsekwentnie.
Znak nowego wiersza w polu jednowierszowym
whitespace/newline-in-single-line
JanKowalski
Jan\u000AKowalski
- 1 podział wiersza
- 12 grafemów
- 12 punktów kodowych
- 12 bajtów
- 12 jednostek UTF-16
- Co psuje
- Pole jednowierszowe, które przyjmuje podział wiersza, psuje eksport CSV, wiersze logów i każdy widok listy pod nim.
- Co robi poprawna aplikacja
- Odrzucony albo zapisany z zachowanym podziałem i escapowany przy eksporcie.
Tabulator w wartości
whitespace/tab-inside
JanKowalski
Jan\u0009Kowalski
- 1 tabulator
- 12 grafemów
- 12 punktów kodowych
- 12 bajtów
- 12 jednostek UTF-16
- Co psuje
- Eksport rozdzielany tabulatorami dzieli jeden rekord na dwie kolumny, a wyrównanie kolumn w raportach się rozsypuje.
- Co robi poprawna aplikacja
- Odrzucony albo escapowany przy eksporcie - nigdy nie trafia bez zmian do formatu z separatorami.
Powrót karetki i nowy wiersz w wartości
whitespace/crlf-in-value
JanKowalski
Jan\u000D\u000AKowalski
- 2 podziały wiersza
- 12 grafemów
- 13 punktów kodowych
- 13 bajtów
- 13 jednostek UTF-16
- Co psuje
- Dwie konwencje końca wiersza w jednym polu sprawiają, że ten sam tekst na różnych systemach porównuje się jako różny.
- Co robi poprawna aplikacja
- Ujednolicone do jednej konwencji przy zapisie albo zachowane i konsekwentnie escapowane.
Pojedyncza spacja o zerowej szerokości
whitespace/zwsp-only
\u200B
- 1 znak o zerowej szerokości
- 1 grafem
- 1 punkt kodowy
- 3 bajty
- 1 jednostka UTF-16
- Co psuje
- Pole wygląda na puste, ale nie jest: walidacja pola wymaganego przechodzi, a rekord nie ma użytecznej nazwy.
- Co robi poprawna aplikacja
- Traktowana przez walidację jak puste pole albo pokazana tak, żeby było widać, że pole nie jest puste.
Spacja pisma ogamicznego
whitespace/ogham-space
abcd
ab\u1680cd
- 1 spacja, która nie jest zwykłą spacją
- 5 grafemów
- 5 punktów kodowych
- 7 bajtów
- 5 jednostek UTF-16
- Co psuje
- Znak z kategorii spacji, który wyświetla się jako widoczna kreska. Psuje i przycinanie, i założenia o układzie.
- Co robi poprawna aplikacja
- Obsłużona jak każdy inny biały znak albo odrzucona z komunikatem.
Trzy spacje między słowami
whitespace/many-spaces-between
JanKowalski
Jan Kowalski
- 14 grafemów
- 14 punktów kodowych
- 14 bajtów
- 14 jednostek UTF-16
- Co psuje
- Wyszukiwanie, usuwanie duplikatów i wydruki w różnych warstwach różnie traktują ciągi spacji.
- Co robi poprawna aplikacja
- Scalane przy zapisie albo zachowywane przy zapisie - jedna zasada, stosowana wszędzie.
Tysiąc spacji
whitespace/len-1000-spaces
1 000 ×
- zaczyna się spacją
- kończy się spacją
- 1 000 grafemów
- 1 000 punktów kodowych
- 1 000 bajtów
- 1 000 jednostek UTF-16
- Co psuje
- Przycinanie znak po znaku i układy, które nie zawijają tekstu. Licząc w znakach, tysiąc spacji to wciąż krótka wartość.
- Co robi poprawna aplikacja
- Odrzucone albo przycięte - nigdy przyjęte i zapisane w całości.