Pary nie do odróżnienia - wartości testowe

Pary wartości identycznych na ekranie i różnych w zapisie. 12 wartości, każda z tym, co psuje, i z tym, co zamiast tego robi poprawna aplikacja.

look-alike-pairs wersja 1.0, aktualizacja 2026-10-14 CC-BY-4.0

Wpisuj je po jednej skrótem AltShiftN w palecie albo weź wszystkie do skryptu poleceniem nkb emit look-alike-pairs.

Imię z łacińskim a

look-alike-pairs/latin-small-a

połowa 1 z 2 Łacińskie a wobec cyrylickiego a

pawel pawel
  • 5 grafemów
  • 5 punktów kodowych
  • 5 bajtów
  • 5 jednostek UTF-16
Co psuje
Połowa kontrolna pary - ma sens tylko obok swojego odpowiednika.
Co robi poprawna aplikacja
Zapisane tak, jak wpisane.

Imię z cyrylickim a

look-alike-pairs/cyrillic-small-a

połowa 2 z 2 Łacińskie a wobec cyrylickiego a

pаwel pаwel
  • 5 grafemów
  • 5 punktów kodowych
  • 6 bajtów
  • 5 jednostek UTF-16
Co psuje
Cyrylicka litera o kształcie identycznym z łacińską. Dwa konta, które dla każdego człowieka wyglądają tak samo.
Co robi poprawna aplikacja
Albo oba przyjęte jako różne i pokazane jako różne, albo drugie odrzucone jako duplikat.

Słowo z łacińskim o

look-alike-pairs/latin-small-o

połowa 1 z 2 Łacińskie o wobec greckiego omikronu

robot robot
  • 5 grafemów
  • 5 punktów kodowych
  • 5 bajtów
  • 5 jednostek UTF-16
Co psuje
Połowa kontrolna pary - ma sens tylko obok greckiego omikronu pod nią.
Co robi poprawna aplikacja
Zapisane tak, jak wpisane.

Słowo z greckim omikronem

look-alike-pairs/greek-omicron

połowa 2 z 2 Łacińskie o wobec greckiego omikronu

rοbot rοbot
  • 5 grafemów
  • 5 punktów kodowych
  • 6 bajtów
  • 5 jednostek UTF-16
Co psuje
Ten sam kształt z trzeciego pisma. Łapie sprawdzanie unikalności, które obsługuje tylko cyrylicę.
Co robi poprawna aplikacja
Tak samo jak wyżej.

Słowo z akcentami, rozłożone

look-alike-pairs/nfd-lodz

połowa 2 z 2 Akcenty złożone wobec rozłożonych

Łódź Łódź
  • 4 grafemy
  • 6 punktów kodowych
  • 9 bajtów
  • 6 jednostek UTF-16
Co psuje
To samo słowo ze znakami łączącymi. Identyczne na ekranie, różne w zapisie i w każdym porównaniu.
Co robi poprawna aplikacja
Normalizowane przy zapisie albo porównywane z uwzględnieniem normalizacji.

Imię i nazwisko ze zwykłą spacją

look-alike-pairs/plain-space-name

połowa 1 z 2 Zwykła spacja wobec twardej spacji

JanKowalski Jan Kowalski
  • 12 grafemów
  • 12 punktów kodowych
  • 12 bajtów
  • 12 jednostek UTF-16
Co psuje
Połowa kontrolna pary - zwykła spacja, żeby twarda spacja miała z czym przegrać.
Co robi poprawna aplikacja
Zapisane tak, jak wpisane.

Imię i nazwisko z twardą spacją

look-alike-pairs/nbsp-name

połowa 2 z 2 Zwykła spacja wobec twardej spacji

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
Twarda spacja tam, gdzie oczekiwana jest zwykła. Wyszukiwanie nigdy jej nie dopasuje.
Co robi poprawna aplikacja
Normalizowane albo konsekwentnie traktowane jako inna wartość.

Zakres z łącznikiem

look-alike-pairs/hyphen-minus

połowa 1 z 2 Łącznik wobec półpauzy

2020-2026 2020-2026
  • 9 grafemów
  • 9 punktów kodowych
  • 9 bajtów
  • 9 jednostek UTF-16
Co psuje
Połowa kontrolna pary, z łącznikiem ASCII. Parser odczyta go wszędzie tam, gdzie nie odczyta półpauzy z wartości poniżej.
Co robi poprawna aplikacja
Zapisane tak, jak wpisane.

Zakres z półpauzą

look-alike-pairs/en-dash

połowa 2 z 2 Łącznik wobec półpauzy

2020–2026 2020–2026
  • 9 grafemów
  • 9 punktów kodowych
  • 11 bajtów
  • 9 jednostek UTF-16
Co psuje
Typograficzna kreska, która przychodzi z każdym kopiowaniem z dokumentu. Psuje odczyt zakresów.
Co robi poprawna aplikacja
Normalizowana przed odczytem albo przyjmowana jako równoważny separator.

Wielkie i, małe L i jedynka

look-alike-pairs/capital-i
Ill1 Ill1
  • 4 grafemy
  • 4 punkty kodowe
  • 4 bajty
  • 4 jednostki UTF-16
Co psuje
Wielkie i, małe L i cyfra jeden w jednej wartości: w wielu krojach pisma nie do odróżnienia.
Co robi poprawna aplikacja
Wyświetlane krojem, w którym te znaki da się odróżnić, wszędzie tam, gdzie wartość trzeba odczytać.

Litera O i cyfra zero

look-alike-pairs/digit-zero-letter-o
O0 O0
  • 2 grafemy
  • 2 punkty kodowe
  • 2 bajty
  • 2 jednostki UTF-16
Co psuje
Ten sam problem z literą O i cyfrą zero, w kodach przepisywanych ręcznie.
Co robi poprawna aplikacja
Tak samo jak wyżej albo niejednoznaczne znaki wykluczone z generowanych kodów.

Pary

Każda para to dwie wartości z listy wyżej, które warto wpisać obok siebie: w dwa pola albo dwa razy w jedno pole. Skrót AltShiftN wpisuje je po kolei, a paleta mówi, która połowa pary jest następna.

Łacińskie a wobec cyrylickiego a

look-alike-pairs/latin-vs-cyrillic-a
nie do odróżnienia

połowa 1 z 2 Imię z łacińskim a

pawel
  • 5 grafemów
  • 5 punktów kodowych
  • 5 bajtów
  • 5 jednostek UTF-16

połowa 2 z 2 Imię z cyrylickim a

pаwel
  • 5 grafemów
  • 5 punktów kodowych
  • 6 bajtów
  • 5 jednostek UTF-16
Co psuje
Dwie nazwy użytkownika wyglądające identycznie stają się dwoma kontami, a pomoc techniczna nie umie ich rozróżnić.
Co robi poprawna aplikacja
Albo oba przyjęte jako różne i pokazane jako różne, albo drugie odrzucone jako duplikat.

Łacińskie o wobec greckiego omikronu

look-alike-pairs/latin-vs-greek-o
nie do odróżnienia

połowa 1 z 2 Słowo z łacińskim o

robot
  • 5 grafemów
  • 5 punktów kodowych
  • 5 bajtów
  • 5 jednostek UTF-16

połowa 2 z 2 Słowo z greckim omikronem

rοbot
  • 5 grafemów
  • 5 punktów kodowych
  • 6 bajtów
  • 5 jednostek UTF-16
Co psuje
Sprawdzanie unikalności, które obsługuje jedno pismo jako wyjątek, przepuszcza następne.
Co robi poprawna aplikacja
Albo oba przyjęte jako różne i pokazane jako różne, albo drugie odrzucone jako duplikat.

Zwykła spacja wobec twardej spacji

look-alike-pairs/space-vs-nbsp
nie do odróżnienia

połowa 1 z 2 Imię i nazwisko ze zwykłą spacją

JanKowalski
  • 12 grafemów
  • 12 punktów kodowych
  • 12 bajtów
  • 12 jednostek UTF-16

połowa 2 z 2 Imię i nazwisko z twardą spacją

JanKowalski
  • 12 grafemów
  • 12 punktów kodowych
  • 13 bajtów
  • 12 jednostek UTF-16
Co psuje
Wyszukiwanie znajduje jedno, a drugiego nie, i nikt nie widzi dlaczego.
Co robi poprawna aplikacja
Oba znalezione tym samym wyszukiwaniem, bo spacja jest normalizowana przy zapisie albo wyszukiwanie traktuje obie jak spację.

Łącznik wobec półpauzy

look-alike-pairs/hyphen-vs-endash
nie do odróżnienia

połowa 1 z 2 Zakres z łącznikiem

2020-2026
  • 9 grafemów
  • 9 punktów kodowych
  • 9 bajtów
  • 9 jednostek UTF-16

połowa 2 z 2 Zakres z półpauzą

2020–2026
  • 9 grafemów
  • 9 punktów kodowych
  • 11 bajtów
  • 9 jednostek UTF-16
Co psuje
Zakres wklejony z dokumentu przestaje się odczytywać, choć nie widać żadnej różnicy.
Co robi poprawna aplikacja
Obie formy odczytane jako ten sam zakres albo półpauza normalizowana przed odczytem.