Polish locale test values
Polish identifiers, formats and characters that global commercial products do not handle. 6 values, each with what it breaks and what a correct application does instead.
Type them one at a time with AltShiftN
in the palette, or take them all into a script with nkb emit locale-pl.
PESEL with a valid checksum
locale-pl/pesel-valid
99023012343
99023012343
- 11 graphemes
- 11 code points
- 11 bytes
- 11 UTF-16 units
- What it breaks
- A national identifier that passes the checksum but encodes an impossible birth date - accepted by length checks, rejected by real validation.
- What a correct application does
- Accepted or rejected according to which validation the field claims to do, consistently.
PESEL with a wrong checksum
locale-pl/pesel-bad-checksum
99023012344
99023012344
- 11 graphemes
- 11 code points
- 11 bytes
- 11 UTF-16 units
- What it breaks
- Differs from the valid one by a single digit; a field checking only the length cannot tell them apart.
- What a correct application does
- Rejected with a message that says the checksum failed, not that the length is wrong.
Every Polish diacritic
locale-pl/diacritics-full
ĄĆĘŁŃÓŚŹŻąćęłńóśźż
ĄĆĘŁŃÓŚŹŻ ąćęłńóśźż
- 19 graphemes
- 19 code points
- 37 bytes
- 19 UTF-16 units
- What it breaks
- Encoding narrower than the full character set replaces these with question marks, and the name is corrupted on save.
- What a correct application does
- Stored and returned unchanged in every layer, including exports and printouts.
Double-barrelled surname
locale-pl/surname-hyphenated
Kowalska-Nowak
Kowalska-Nowak
- 14 graphemes
- 14 code points
- 14 bytes
- 14 UTF-16 units
- What it breaks
- Double surnames break name splitting, sorting and the assumption that a surname is one word.
- What a correct application does
- Stored as one surname; sorting and search treat it as written.
Polish postal code
locale-pl/postal-code
00-950
00-950
- 6 graphemes
- 6 code points
- 6 bytes
- 6 UTF-16 units
- What it breaks
- The national postal code format; a field expecting five digits without a separator rejects every real code.
- What a correct application does
- The expected format shown next to the field, and the separator handled either way.
Street with a building and flat number
locale-pl/street-with-slash
Marszałkowska12/34
Marszałkowska 12/34
- 19 graphemes
- 19 code points
- 20 bytes
- 19 UTF-16 units
- What it breaks
- House and flat numbers written with a slash; a field splitting on a slash produces two address lines from one.
- What a correct application does
- Stored as one line, and exported without splitting.