Skip to content

Commit

Permalink
mb_detect_encoding recognizes all letters in Czech alphabet
Browse files Browse the repository at this point in the history
  • Loading branch information
alexdowad committed May 25, 2022
1 parent 3b6ee1e commit 6a4b6d2
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 5 deletions.
11 changes: 7 additions & 4 deletions ext/mbstring/common_codepoints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@
0x00A1 0x00AC # Pound sign, Yen sign, copyright sign...
0x00AE 0x00FF # Accented Latin characters
0x0104 0x0107 # Polish
0x0118 0x0119 # Polish
0x010C 0x010F # Czech
0x0118 0x011B # Polish, Czech
0x0141 0x0144 # Polish
0x015A 0x015B # Polish
0x0147 0x0148 # Czech
0x0158 0x015B # Czech, Polish
0x0160 0x0161 # Used in Slavic names
0x0179 0x017C # Polish
0x017D 0x017E # Used in Slavic names
0x0164 0x0165 # Czech
0x016E 0x016F # Czech
0x0179 0x017E # Polish, Czech, other Slavic languages
0x0300 0x030A # Diacritical marks
0x0370 0x0377 # Greek
0x037A 0x037F # Greek
Expand Down
2 changes: 1 addition & 1 deletion ext/mbstring/rare_cp_bitvec.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

static uint32_t rare_codepoint_bitvec[] = {
0xffffd9ff, 0x00000000, 0x00000000, 0x80000000, 0xffffffff, 0x00002001, 0x00000000, 0x00000000,
0xfcffff0f, 0xffffffff, 0xf3ffffe1, 0x81fffffc, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xf0ff0f0f, 0xffffffff, 0xf0fffe61, 0x81ff3fcc, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xfffff800, 0xffffffff, 0xffffffff, 0x0300ffff, 0x0000280f, 0x00000004, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
Expand Down
76 changes: 76 additions & 0 deletions ext/mbstring/tests/mb_detect_encoding.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,82 @@ test($deStrings, $deEncodings);

test([$polish1, $polish2], ['UTF-32BE', 'UTF-32LE', 'UTF-16BE', 'UTF-16LE', 'UTF-8', 'ISO-8859-2']);

$czechStrings = [
// Gotta love these Czech proverbs
// "Some like girls, others like muffins." Truer words were never spoken.
'Bezdomovec je doma všude.',
'Bez práce nejsou koláče.',
'Bez peněz do hospody nelez.',
'Bližší košile nežli kabát.',
'Boží mlýny melou pomalu, ale jistě.',
'Co je dovoleno pánovi, není dovoleno kmánovi.',
'Co je šeptem, to je s čertem.',
'Co je v domě, není pro mě.',
'Co je v domě, to se počítá.',
'Co jsi z úst vypustil, ani párem koní nedostaneš zpět.',
'Co můžeš udělat dnes, neodkládej na zítřek.',
'Co nejde po dobrým, to půjde po zlým.',
'Co oči nevidí, to srdce nebolí (a ruce neukradnou).',
'Co se škádlívá, to se rádo mívá.',
'Co se v mládí naučíš, ke stáru jako když najdeš.',
'Co sis uvařil, to si sněz.',
'Co tě nezabije, to tě posílí.',
'Cvik dělá mistra.',
'Co tě nepálí, nehas.',
'Co na srdci, to na jazyku.',
'Co nejde silou, jde rozumem.',
'Čas všechny rány zahojí.',
'Častá krůpěj kámen proráží.',
'Čím výše vystoupíš, tím hlouběji padáš.',
'Čím výše vystoupíš, tím větší rozhled.',
'Čiň čertu dobře, peklem se ti odmění.',
'Čistota – půl zdraví.',
'Dal ses na vojnu, tak bojuj.',
'Darovanému koni na zuby nehleď.',
'Devatero řemesel – desátá bída.',
'Dějiny píší vítězové.',
'Dobré slovo i železná vrata otvírá.',
'Dočkej času jako husa klasu.',
'Drzé čelo lepší než poplužní dvůr.',
'Dvakrát měř, jednou řež.',
'Důvěřuj, ale prověřuj',
'Hlad je nejlepší kuchař.',
'Hlad má velké oči.',
'Hloupý, kdo dává, hloupější, kdo nebere.',
'Hněv je špatný rádce.',
'Někdo rád holky, jinej zas vdolky.',
'Volům kroky a jelenům skoky.',
'Vrána k vráně sedá, rovný rovného si hledá.',
'Všeho nechám, už tam spěchám.',
'Všechna sláva, polní tráva.',
'Všeho s mírou.',
'Všechno zlé je pro něco dobré.',
'Všude dobře, doma nejlépe.',
'Vrána vráně oči nevyklove.',
'Výjimka potvrzuje pravidlo.',
'Vzduch – boží duch.',
'Za dobrotu na žebrotu.',
'Zadarmo ani kuře nehrabe.',
'Zahálky jsa služebníkem, neběduj, žes hadrníkem.',
'Z cizího krev neteče.',
'Zítra je taky den.',
'Zakázané ovoce chutná nejlépe.',
'Zlaté slovo, které zůstane v ústech.',
'Zvyk je železná košile.',
'Žába močál vždy najde.',
'Žádná píseň není tak dlouhá, aby jí nebyl konec.',
'Žádný strom neroste do nebe.',
'Žádný učený z nebe nespadl.',
'Žízeň je věčná.'
];
$czechEncodings = [
'UTF-8',
'UTF-16',
// 'Windows-1250', // Windows-1250 is not supported by mbstring
// 'ISO-8859-2' // We are not able to accurately distinguish UTF-8 and ISO-8859-2
];
test($czechStrings, $czechEncodings);

echo "Done!\n";

?>
Expand Down

0 comments on commit 6a4b6d2

Please sign in to comment.