Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠΈΡΠΊΠΎ Π·Π°ΠΏΠΎΡΠ½Π° Ρ ΠΊΡΠ°ΡΡΠΊ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π°Π΄ΡΠ΅ΡΠΈ Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π° ΠΏΠΎΡΠ° ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΎΡ ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈΡ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π° ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΈ. Π Π΄Π²Π°ΡΠ° ΡΠΏΠΈΡΡΠΊΠ° Π±ΡΡ Π° Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½ΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ Unicode. UTF-8 ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ Π½Π° Unix.
ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ mail.txt
ΠΠ²Π°Π½ΠΎΠ² ΠΠ½Π΄ΡΠ΅ΠΉ;[email protected]
ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ buhg.txt
ΠΠ²Π°Π½ΠΎΠ²Π° ΠΠ»Π»Π°;ΠΌΠ°Π»ΡΡ
ΠΠ»ΠΊΠΈΠ½Π° ΠΠ»Π»Π°;ΠΊΡΠ°Π½ΠΎΠ²ΡΠΈΡΠ°
ΠΠ²Π°Π½ΠΎΠ² ΠΠ½Π΄ΡΠ΅ΠΉ;ΡΠ»Π΅ΡΠ°ΡΡ
ΠΠ±Π°ΠΊΠ°Π½ΠΎΠ² ΠΠΈΡ
Π°ΠΈΠ»;ΠΌΠ°Π»ΡΡ
ΠΠ° Π΄Π° ΡΠ΅ ΡΠ»Π΅ΡΡ, ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π±ΡΡ Π° ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Unix Π²ΠΈΠ΄ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π½Π° Π²Ρ ΠΎΠ΄Π° Π½Π° Unix ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΡ ΠΊΡΠΌ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΎ Π·Π°Π²ΡΡΡΠΈ Ρ Π³ΡΠ΅ΡΠΊΠ°ΡΠ°:
$> sort buhg.txt > buhg.srt
$> sort mail.txt > mail.srt
$> join buhg.srt mail.srt > result
join: buhg.srt:4: is not sorted: ΠΠ²Π°Π½ΠΎΠ² ΠΠ½Π΄ΡΠ΅ΠΉ;ΡΠ»Π΅ΡΠ°ΡΡ
Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΡΠΆΠΊΠΈ ΠΈ ΠΆΠ΅Π½ΡΠΊΠΈ ΡΠ°ΠΌΠΈΠ»Π½ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΆΠ΅Π½ΡΠΊΠΈΡΠ΅ ΡΠ° ΠΏΡΠ΅Π΄ ΠΌΡΠΆΠΊΠΈΡΠ΅:
$> sort buhg.txt
ΠΠ±Π°ΠΊΠ°Π½ΠΎΠ² ΠΠΈΡ
Π°ΠΈΠ»;ΠΌΠ°Π»ΡΡ
ΠΠ»ΠΊΠΈΠ½Π° ΠΠ»Π»Π°;ΠΊΡΠ°Π½ΠΎΠ²ΡΠΈΡΠ°
ΠΠ²Π°Π½ΠΎΠ²Π° ΠΠ»Π»Π°;ΠΌΠ°Π»ΡΡ
ΠΠ²Π°Π½ΠΎΠ² ΠΠ½Π΄ΡΠ΅ΠΉ;ΡΠ»Π΅ΡΠ°ΡΡ
ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ Π±ΡΠ³ ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π² Unicode ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΠ²Π° Π½Π° ΡΠ΅ΠΌΠΈΠ½ΠΈΠ·ΡΠΌ Π² Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅. ΠΡΡΠ²ΠΎΡΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π΅ ΠΏΠΎ-ΠΏΡΠ°Π²Π΄ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠ΅ΠΊΠ° Π³ΠΎ ΠΎΡΠ»ΠΎΠΆΠΈΠΌ Π·Π°ΡΠ΅Π³Π° ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΡ ΠΊΡΠΌ ΠΈ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΉΡΠ΅ Π²ΡΡΡ Ρ Π²ΠΈΠ΄. ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° Π½Π°ΡΡΠ½ΠΎΡΠΎ ΠΌΡΡΠΊΠ°Π½Π΅. ΠΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»Π° ΠΎΡ en_US Π½Π° ru_ru. ΠΠ° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° LC_COLLATE, Π½ΠΎ Π½ΡΠΌΠ° Π΄Π° Π³ΡΠ±ΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π΄ΡΠ΅Π±ΠΎΠ»ΠΈΠΈ:
$> LANG=ru_RU.UTF-8 sort buhg.txt
ΠΠ±Π°ΠΊΠ°Π½ΠΎΠ² ΠΠΈΡ
Π°ΠΈΠ»;ΠΌΠ°Π»ΡΡ
ΠΠ»ΠΊΠΈΠ½Π° ΠΠ»Π»Π°;ΠΊΡΠ°Π½ΠΎΠ²ΡΠΈΡΠ°
ΠΠ²Π°Π½ΠΎΠ²Π° ΠΠ»Π»Π°;ΠΌΠ°Π»ΡΡ
ΠΠ²Π°Π½ΠΎΠ² ΠΠ½Π΄ΡΠ΅ΠΉ;ΡΠ»Π΅ΡΠ°ΡΡ
ΠΠΈΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π² Π΅Π΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅:
$> iconv -f UTF-8 -t KOI8-R buhg.txt
| LANG=ru_RU.KOI8-R sort
| iconv -f KOI8-R -t UTF8
ΠΡΠ½ΠΎΠ²ΠΎ Π½ΠΈΡΠΎ Π½Π΅ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ.
ΠΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΡΡΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΡΠΌΠ° Π½ΠΈΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π·Π° ΡΡΡΠΊΠΈΡΠ΅ ΡΠ°ΠΌΠΈΠ»Π½ΠΈ ΠΈΠΌΠ΅Π½Π°, Π½ΠΎ ΠΈΠΌΠ° Π²ΡΠΏΡΠΎΡΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π΄ΡΡΠ³ΠΈ ΡΡΡΠ°Π½Π½ΠΎΡΡΠΈ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ:
ΠΡΠ³ΠΎΠ²ΠΎΡΡΡ Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅: ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π»ΠΎΠΊΠ°Π»Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠ° "Β° Π‘" ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°ΡΡΠ»ΠΈΠ²ΠΈ. ΠΠΏΠΈΡΠ²Π°ΠΌΠ΅:
$> LANG=C sort buhg.txt
ΠΠ»ΠΊΠΈΠ½Π° ΠΠ»Π»Π°;ΠΊΡΠ°Π½ΠΎΠ²ΡΠΈΡΠ°
ΠΠ±Π°ΠΊΠ°Π½ΠΎΠ² ΠΠΈΡ
Π°ΠΈΠ»;ΠΌΠ°Π»ΡΡ
ΠΠ²Π°Π½ΠΎΠ² ΠΠ½Π΄ΡΠ΅ΠΉ;ΡΠ»Π΅ΡΠ°ΡΡ
ΠΠ²Π°Π½ΠΎΠ²Π° ΠΠ»Π»Π°;Π°Π΄Π²ΠΎΠΊΠ°Ρ
ΠΠ΅ΡΠΎ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ. ΠΠ²Π°Π½ΠΎΠ²ΠΈ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅Π΄ΠΈΡ Π° Π² ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΡΠ΅Π΄, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΠΎΠ»ΠΊΠΈΠ½Π° ΡΠ΅ ΠΏΠΎΠ΄Ρ Π»ΡΠ·Π½Π° Π½ΡΠΊΡΠ΄Π΅. ΠΠ° ΡΠ΅ ββΠ²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ:
$> LANG=C sort buhg.txt > buhg.srt
$> LANG=C sort mail.txt > mail.srt
$> LANG=C join buhg.srt mail.srt > result
Π Π°Π±ΠΎΡΠΈ Π±Π΅Π· Π³ΡΠ΅ΡΠΊΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΎΠ±Π΅ΡΠ°Π²Π° ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ. Π ΡΠΎΠ²Π° Π²ΡΠΏΡΠ΅ΠΊΠΈ ΠΠΎΠ»ΠΊΠΈΠ½Π° Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ΅ΡΠ΅Π½, Π½ΠΎ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ΠΊΠ° ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄ΡΡΠ³ΠΎ ΡΡΡΠΊΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ - Windows CP1251:
$> iconv -f UTF-8 -t CP1251 buhg.txt
| LANG=ru_RU.CP1251 sort
| iconv -f CP1251 -t UTF8
Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ ΠΎΡ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈ Π΄Π° Π΅ ΡΡΡΠ°Π½Π½ΠΎ, ΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π° "Β° Π‘", ΠΈ ΡΠ΅Π»ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΌΠΈΠ½Π°Π²Π° Π±Π΅Π· Π³ΡΠ΅ΡΠΊΠΈ. ΠΡΠΊΠ°ΠΊΠ²Π° ΠΌΠΈΡΡΠΈΠΊΠ°.
ΠΠ΅ Ρ Π°ΡΠ΅ΡΠ²Π°ΠΌ ΠΌΠΈΡΡΠΈΡΠΈΠ·ΠΌΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡΠΈΠΊΡΠΈΠ²Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅. Π©Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π°Π΅ΠΌΠ΅ΠΌ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Ρ ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ. Π²ΠΈΠ΄ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ LC_COLLATE .
ΠΠ°ΠΊΡΠ°Ρ ΡΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΡ Π½Π° Π²ΡΠΏΡΠΎΡΠΈΡΠ΅:
- Π·Π°ΡΠΎ ΡΠ°ΠΌΠΈΠ»Π½ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΆΠ΅Π½ΠΈΡΠ΅ ΡΠ° ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ
- Π·Π°ΡΠΎ LANG=ru_RU.CP1251 ΡΠ΅ ΠΎΠΊΠ°Π·Π° Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡΡ LANG=C
- Π·Π°ΡΠΎ ΡΠΈ Π²ΠΈΠ΄ ΠΈ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΡ ΠΊΡΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ΄Π΅ΠΈ Π·Π° ΡΠ΅Π΄Π° Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅
- Π·Π°ΡΠΎ ΠΈΠΌΠ° Π³ΡΠ΅ΡΠΊΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΌΠΎΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ
- Π½Π°ΠΊΡΠ°Ρ ΠΊΠ°ΠΊ Π΄Π° ΡΠΎΡΡΠΈΡΠ°ΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅ ΠΏΠΎ Π²Π°Ρ Π²ΠΊΡΡ
Π‘ΠΎΡΡΠΈΡΠ°Π½Π΅ Π² Unicode
ΠΡΡΠ²Π°ΡΠ° ΡΠΏΠΈΡΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΠ·Π°Π³Π»Π°Π²Π΅Π½ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ β10
Π‘Π²Π΅ΡΠΊΠ° - "ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ΡΠΎ" Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅. Π‘Π°ΠΌΠΈΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ ("Π±Π°Π»ΠΎΠ½", "ΡΠ»ΠΈΠ²Π°Π½Π΅", "Π±ΡΡΠ·ΠΎ"), Π½ΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡ Π½ΠΈΠ·ΠΎΠ²Π΅, Π·Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π΄.
Π‘ΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π½Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ Π΅Π·ΠΈΠΊ Π΅ Π΄ΠΎΡΡΠ° ΡΡΡΠ΄Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎΡΠΈ ΠΈ Π² Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΠ΅ Π΅Π΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠ΅Π΄ΡΡ Π½Π° Π±ΡΠΊΠ²ΠΈΡΠ΅ Π² Π°Π·Π±ΡΠΊΠ°ΡΠ°, Π΄ΠΎΡΠΈ ΠΈ Π΄Π° Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΎΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠ°ΡΠ° Π»Π°ΡΠΈΠ½ΠΈΡΠ°, Π²Π΅ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΡΡΠ²ΠΏΠ°Π΄Π° Ρ ΡΠ΅Π΄Π° Π½Π° ΡΠΈΡΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ ΡΠ΅Π·ΠΈ Π±ΡΠΊΠ²ΠΈ. Π’Π°ΠΊΠ° ΡΠ΅ Π² Π½Π΅ΠΌΡΠΊΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ° Π±ΡΠΊΠ²Π°ΡΠ° Γ ΡΡΠΎΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π ΠΈ P, ΠΈ Π² ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ CP850 ΡΡ ΠΏΠΎΠΏΠ°Π΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΓΏ ΠΈ Γ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΠ΅ Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ°ΡΠ΅ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΡΠ΅ βΠΈΠ΄Π΅Π°Π»Π½ΠΈΡΠ΅β Π±ΡΠΊΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π² Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠ΅Π΄, ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π² Unicode. ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ UTF8, UTF16 ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ KOI8-R (Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π° Unicode) ΡΠ΅ Π΄Π°Π΄Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠΎΠ²ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½ΠΈΡ Π½Π° Π±ΡΠΊΠ²ΠΈΡΠ΅, Π½ΠΎ ΡΠ΅ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° Π±Π°Π·ΠΎΠ²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°.
ΠΠΊΠ°Π·Π²Π° ΡΠ΅, ΡΠ΅ Π΄ΠΎΡΠΈ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ ΠΎΡ Π½ΡΠ»Π°ΡΠ°, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΉ ΠΏΡΠΈΡΠ²ΠΎΠΈΠΌ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΡΠ΅Π΄ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅. Π ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Π°Π·Π±ΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π±ΡΠΊΠ²ΠΈ, ΡΠ΅Π΄ΡΡ Π½Π° ΡΠ΅Π·ΠΈ Π±ΡΠΊΠ²ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° ΡΡΠ΅Π½ΡΠΊΠΈ Γ ΡΠ΅ ΡΠ΅ ΡΡΠ΅ΡΠΈΡΠ° ΠΊΠ°ΡΠΎ Π»ΠΈΠ³Π°ΡΡΡΠ° ΠΈ ΡΠΎΡΡΠΈΡΠ° ΠΊΠ°ΡΠΎ Π½ΠΈΠ· AE. ΠΠ° Π½ΠΎΡΠ²Π΅ΠΆΠΊΠΈ Π΅Π·ΠΈΠΊ Γ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΡΠ΄Π΅Π»Π½Π° Π±ΡΠΊΠ²Π°, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠ»Π΅Π΄ Z. ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΎΡΠ²Π΅Π½ Π»ΠΈΠ³Π°ΡΡΡΠΈ ΠΊΠ°ΡΠΎ Γ ΠΈΠΌΠ° Π±ΡΠΊΠ²ΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π·Π½Π°ΠΊΠ°. Π’Π°ΠΊΠ° ΡΠ΅ Π² ΡΠ΅ΡΠΊΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ° ΠΈΠΌΠ° Π±ΡΠΊΠ²Π° Ch, ΠΊΠΎΠΉΡΠΎ ΡΡΠΎΠΈ ΠΌΠ΅ΠΆΠ΄Ρ H ΠΈ I.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Π² Π°Π·Π±ΡΠΊΠΈΡΠ΅, ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈ Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π²ΡΠΏΡΠΎΡΡΡ: Π² ΠΊΠ°ΠΊΡΠ² ΡΠ΅Π΄ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π°Ρ Π² ΡΠ΅ΡΠ½ΠΈΠΊΠ° Π΄ΡΠΌΠΈΡΠ΅, ΡΡΡΡΠΎΡΡΠΈ ΡΠ΅ ΠΎΡ Π³Π»Π°Π²Π½ΠΈ ΠΈ ΠΌΠ°Π»ΠΊΠΈ Π±ΡΠΊΠ²ΠΈ? Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ½ΠΎ ΠΎΡ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈ Π·Π½Π°ΡΠΈ. ΠΠ° ΠΈΡΠΏΠ°Π½ΡΠΊΠΈ ΠΎΠ±ΡΡΠ½Π°Ρ Π²ΡΠΏΡΠΎΡΠΈΡΠ΅Π»Π΅Π½ Π·Π½Π°ΠΊ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π²ΡΠΏΡΠΎΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (Π₯Π°ΡΠ΅ΡΠ²Π°Ρ Π»ΠΈ ΠΌΡΠ·ΠΈΠΊΠ°?). Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠ΅ Π²ΡΠΏΡΠΎΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΈΠ·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π³ΡΡΠΏΠΈΡΠ°Ρ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈΠ·Π²ΡΠ½ Π°Π·Π±ΡΠΊΠ°ΡΠ°, Π½ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΡΠΎΡΡΠΈΡΠ°ΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈ Π·Π½Π°ΡΠΈ?
ΠΡΠΌΠ° Π΄Π° ΡΠ΅ ΡΠΏΠΈΡΠ°ΠΌ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π½Π° Π΅Π·ΠΈΡΠΈ, ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ Π΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΡΠ΅. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ Π΅Π·ΠΈΡΠΈΡΠ΅ Ρ ΠΏΠΈΡΠ°Π½Π΅ ΠΎΡΠ΄ΡΡΠ½ΠΎ Π½Π°Π»ΡΠ²ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠ³ΠΎΡΠ΅ Π½Π°Π΄ΠΎΠ»Ρ ΡΠ° ΡΠΊΠ»ΠΎΠ½Π½ΠΈ Π΄Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ Π·Π½Π°ΡΠΈ Π² ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΠ΅Π΄ Π½Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π΄ΠΎΡΠΈ Π½Π΅Π°Π·Π±ΡΡΠ½ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈΠΌΠ°Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎ Π·Π½Π°ΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΉΠ΅ΡΠΎΠ³Π»ΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΏΠΎ ΡΡΠΈΠ» (
ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅, ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅, Π±ΡΡ Π° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°Π½ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Unicode ΡΠ°Π±Π»ΠΈΡΠΈ:
- ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° Π½Π° Π·Π½Π°ΡΠΈΡΠ΅ Π² ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°;
- ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ Π΅Π΄ΠΈΠ½ Π·Π½Π°ΠΊ, ΡΠ΅ ΡΠ΅Π΄ΡΡΠΈΡΠ°Ρ Π΄ΠΎ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ½Π°ΡΠ° ΡΠΎΡΠΌΠ° (A + Π³ΠΎΡΠ½ΠΈΡΡ ΠΊΡΡΠ³ Π΅ ΡΡΡΠΈΡΡ ΠΊΠ°ΡΠΎ Γ );
- ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ°Π²Π½ΡΠ²Π°Ρ Π½ΠΈΠ·ΠΎΠ²Π΅, Π·Π½Π°ΠΊ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° Π½ΠΈΠ· ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΡΡΡ ΡΡΡΠ΅Π΄ΠΈ Π² Π΅Π΄Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ (Ch Π½Π° ΡΠ΅ΡΠΊΠΈ) ΠΈΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ (Γ Π½Π° ΡΡΠ΅Π½ΡΠΊΠΈ Π΅Π·ΠΈΠΊ);
- Π²ΡΠΈΡΠΊΠΈ Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ (Π°Π·Π±ΡΠΊΠ°, Π³Π»Π°Π²Π½ΠΈ/ΠΌΠ°Π»ΠΊΠΈ Π±ΡΠΊΠ²ΠΈ, ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈ Π·Π½Π°ΡΠΈ, ΡΠ΅Π΄ Π½Π° Π²ΠΈΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΏΠΈΡΠ°Π½Π΅) ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ Π΄ΠΎ ΡΡΡΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π΄Π° (Π΅ΠΌΠΎΠ΄ΠΆΠΈ);
- ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅, Π½ΠΎ ΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΌΠ΅ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ ΠΎΡ Π½ΠΈΠ·ΠΎΠ²Π΅ (Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° {A ... z} Π² ΡΡΡΡΠΊΠ°ΠΌ);
- ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π±ΡΡΠ·ΠΎ.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°Ρ Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·ΡΠΈΡΠ°Ρ:
- Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π·Π½Π°ΡΠΈ Π·Π° Π²ΡΠ΅ΠΊΠΈ Π΅Π·ΠΈΠΊ (ΡΡΡΠΊΠΈΡΠ΅ ΠΈ ΡΠΊΡΠ°ΠΈΠ½ΡΠΊΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΊΠΈΡΠΈΠ»ΡΠΊΠΈ Π·Π½Π°ΡΠΈ);
- ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΡΠ΅Π΄Π° Π½Π° Π·Π½Π°ΡΠΈΡΠ΅ Π² Unicode ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅;
- ΡΠ΅Π³Π»ΠΎΡΠΎ Π½Π° Π½ΠΈΠ·Π° Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π°ΡΡΠΈΠ±ΡΡ Π½Π° Π½ΠΈΠ·Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Π½ΠΈΠ· Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΡΠ»ΡΡΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π³Π»Π°;
- ΡΠ΅Π³Π»Π°ΡΠ° Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΏΡΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ (ΠΎΡ x < y ΡΠΎΠ²Π° Π½Π΅ ΡΠ»Π΅Π΄Π²Π° xz < yz);
- ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΡΠ΅Π³Π»Π°, ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° ΡΠ°Π²Π½ΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅. ΠΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π»ΠΎΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°;
- ΡΠ΅Π΄ΠΎΠ²Π΅ Ρ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΡΠ΅Π³Π»Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Π½ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΡΠΎΡΡΠΈΡΠ°Π½Π΅. Π£ΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡΠ° Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅, Π° Π½Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ (Π²ΠΈΠΆΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ°);
- ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΡΠ»ΡΡΡΠ½ΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ΅ ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Ρ/ΠΏΡΠΎΠΌΠ΅Π½ΡΡ.
ΠΠΎΡΠΎΡΠ΅Π½ΠΎ Π΅ ΡΡΡΠΎ, ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅ Π·Π½Π°Π΅ Π½ΠΈΡΠΎ Π·Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅. Π’Π°ΠΊΠ° ΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅, ΡΡΡΡΠΎΡΡΠΈ ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΎΡ ΡΠΈΡΠ»Π°, Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠ°Π²Π½ΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ ΡΠΈΡΠ»Π°, Π° Π² ΡΠΏΠΈΡΡΡΠΈΡΠ΅ Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ ΠΈΠΌΠ΅Π½Π° ΡΠ»Π΅Π½ΡΡ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° (ΠΠΈΠΉΡΡΠ»Ρ, The).
ΠΠ° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΡ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ΅ΠΏΠ΅Π½Π΅Π½ (Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ΡΠΈΡΠΈΡΡΠ΅ΠΏΠ΅Π½Π΅Π½) ΡΠ°Π±Π»ΠΈΡΠ΅Π½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅.
ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅ Π² Π½ΠΈΠ·Π° ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ Π² ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ½Π° ΡΠΎΡΠΌΠ° ΠΈ ΡΠ΅ Π³ΡΡΠΏΠΈΡΠ°Ρ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠΈ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. ΠΠ° Π²ΡΡΠΊΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π³Π»Π°, ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½ΠΈΠ²Π° Π½Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. Π’Π΅Π³Π»Π°ΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠΈΡΠ΅ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π½Π°Π±ΠΎΡΠΈ (Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π°), ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ. ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΠΠΠΠ ΠΠ ΠΠΠ (0x0) ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ°Π·ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π½Π΅ ΡΡΠ°ΡΡΠ²Π° Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ, ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅Π³Π»Π°ΡΠ° Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π½ΠΈΠ²Π°. ΠΠ° Π²ΡΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ΅Π³Π»Π°ΡΠ° Π½Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ Π½Π° Π΄Π²Π° Π½ΠΈΠ·Π° ΡΠ΅ ΡΡΠ°Π²Π½ΡΠ²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΅Π΄ΠΈΠ½ Ρ Π΄ΡΡΠ³.
Π ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ, Π½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡΡ Unicode Π²ΠΊΠ»ΡΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π·Π° ΡΠ΅Π³Π»ΠΎ - βΠ’Π°Π±Π»ΠΈΡΠ° Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Unicode ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅β (ΠΠ£Π¦ΠΠ’). ΠΡΠΊΠ°ΠΌ Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠ°, ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° LC_COLLATE Π²ΡΡΡΠ½ΠΎΡΡ Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ Π·Π° ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΡΠ΅Π³Π»ΠΎ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅.
Π’Π΅Π³Π»ΠΎΠ²Π½ΠΈ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½ΡΠΈ ΠΠ£Π¦ΠΠ’ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΊΠ°ΠΊΡΠΎ ΡΠ»Π΅Π΄Π²Π°:
- Π½Π° ΠΏΡΡΠ²ΠΎ Π½ΠΈΠ²ΠΎ Π²ΡΠΈΡΠΊΠΈ Π±ΡΠΊΠ²ΠΈ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π°Ρ Π΄ΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ, Π΄ΠΈΠ°ΠΊΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π½Π°ΡΠΈ ΡΠ΅ ΠΈΠ·Ρ Π²ΡΡΠ»ΡΡ, ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠΈ (Π½Π΅ Π²ΡΠΈΡΠΊΠΈ) ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Ρ;
- Π½Π° Π²ΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ°ΠΌΠΎ Π΄ΠΈΠ°ΠΊΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π½Π°ΡΠΈ;
- ΡΡΠ΅ΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΡ;
- Π½Π° ΡΠ΅ΡΠ²ΡΡΡΠΎ Π½ΠΈΠ²ΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ°ΠΌΠΎ ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠΈ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½ΠΈΡ: ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π²Π½ΡΠ²Π°Ρ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΎΡ ΠΏΡΡΠ²ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ; Π°ΠΊΠΎ ΡΠ΅Π³Π»Π°ΡΠ° ΡΡΠ²ΠΏΠ°Π΄Π°Ρ, ΡΠΎ ΡΠ΅ ΡΡΠ°Π²Π½ΡΠ²Π° ΠΎΡΠ½ΠΎΠ²ΠΎ Ρ ΡΠ΅Π³Π»Π°ΡΠ° ΠΎΡ Π²ΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ; ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΡΠ΅ΡΠΈ ΠΈ ΡΠ΅ΡΠ²ΡΡΡΠΈ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π³Π»Π°. Π Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΡΠ΅Π³Π»Π° Π½Π° ΡΠ΅ΡΠΈΡΠΈΡΠ΅ Π½ΠΈΠ²Π°, ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° ΡΠ°Π²Π½ΠΈ Π΅Π΄ΠΈΠ½ Π½Π° Π΄ΡΡΠ³.
Π’ΠΎΠ·ΠΈ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ (Ρ ΠΊΡΠΏ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ) Π΄Π°Π΄Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ #10 - ΠΠ»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Unicode (ACU).
Π’ΡΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΎΡ Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°Π²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΡΠ½ΠΎ. ΠΠΈ Π±ΠΈΠ»ΠΎ Ρ ΡΠ±Π°Π²ΠΎ Π΄Π° Π³ΠΎ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Unicode.
ΠΠ° ΡΠ΅ΡΡΠΎΠ²ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ACU ΠΈΠΌΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½
Π ΡΡΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΠ£Π¦ΠΠ’ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΡΡΠ° Π΄ΠΎΡΠ°Π΄Π½ΠΎ, Π½ΠΎ Π·Π° Π½Π°ΡΠ΅ ΡΠ°ΡΡΠΈΠ΅ ΠΈΠΌΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Unicode - "
ΠΠ° ΡΠ°ΠΉΡΠ° Π½Π° ΡΠ°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΏΡΠ΅Π· IBM, ΠΈΠΌΠ° Π΄Π΅ΠΌΠΎ ΡΡΡΠ°Π½ΠΈΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ
ΠΠ±Π°ΠΊΠ°Π½ΠΎΠ² ΠΠΈΡ
Π°ΠΈΠ»;ΠΌΠ°Π»ΡΡ
ΠΠ»ΠΊΠΈΠ½Π° ΠΠ»Π»Π°;ΠΊΡΠ°Π½ΠΎΠ²ΡΠΈΡΠ°
ΠΠ²Π°Π½ΠΎΠ² ΠΠ½Π΄ΡΠ΅ΠΉ;ΡΠ»Π΅ΡΠ°ΡΡ
ΠΠ²Π°Π½ΠΎΠ²Π° ΠΠ»Π»Π°;Π°Π΄Π²ΠΎΠΊΠ°Ρ
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΡΠ΅Π±ΡΠ°ΠΉΡΡΡ ICU ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½Π΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈ Π·Π½Π°ΡΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΠΈΡΠ΅
Unicode Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°, Π½ΠΎ ΠΏΠΎΡΡΡΡΠ΅ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΡΡΡΠ°Π½Π½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ Π² Linux ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠΈΠ΄Π΅ Π½ΡΠΊΡΠ΄Π΅ Π΄ΡΡΠ³Π°Π΄Π΅.
Π‘ΠΎΡΡΠΈΡΠ°Π½Π΅ Π² glibc
ΠΡΡΠ· ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π½Π° ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π²ΠΈΠ΄ Π½Π° GNU Core Utils ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π² ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° LC_COLLATE ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ:
$ sort --debug buhg.txt > buhg.srt
sort: using βen_US.UTF8β sorting rules
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ strcoll, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΅ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΠ¬Ρ.
ΠΠ° ΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΠ¬Ρ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π½Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅
ΠΠ°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΈΠΊΠΈ ΠΈΠΌΠ°ΡΠ΅ Π»ΠΈΠ½ΠΊ ΠΊΡΠΌ
Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ Ρ ΡΡΠ»Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΡΠΎΡΡΠΈΡΠ°ΠΌΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅ Π² ΡΡΡΠΊΠΈΡ Π»ΠΎΠΊΠ°Π».
ISO 14651 / 14652
ΠΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° CTT Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Linux Π΅ Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ /usr/share/i18n/locales/. Π‘Π°ΠΌΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Π΅ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° iso14651_t1_common. Π’ΠΎΠ³Π°Π²Π° ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΊΠΎΠΏΠΈΠ΅ iso14651_t1_common Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° iso14651_t1, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Π΄ΠΎΡΠΈΠ΅ΡΠ°, Π² Ρ.Ρ en_US ΠΈ ru_ru. Π ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Linux Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ, Π½ΠΎ Π°ΠΊΠΎ Π½Π΅ ΡΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ°.
Π€Π°ΠΉΠ»ΠΎΠ²Π° ΡΡΡΡΠΊΡΡΡΠ° iso14651_t1 ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠΆΠ°ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½ΠΎ, Ρ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°, Π½ΠΎ Π°ΠΊΠΎ Π³ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΡΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ. Π‘ΡΡΡΠΊΡΡΡΠ°ΡΠ° Π΅ ΠΎΠΏΠΈΡΠ°Π½Π° Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ° ISO 14652, ΡΠΈΠ΅ΡΠΎ ΠΊΠΎΠΏΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΎΡ ΡΠ°ΠΉΡΠ°
Π€Π°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π½Π°ΠΊΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ Π΅ΠΊΡΠ°Π½ΠΈΡΠ°Ρ Π·Π½Π°ΠΊ, Π° ΠΊΡΠ°ΡΡ Π½Π° ΡΠ΅Π΄Π° ΡΠ»Π΅Π΄ Π·Π½Π°ΠΊΠ° # Π΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ. Π Π΄Π²Π°ΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°:
escape_char /
comment_char %
Π€Π°ΠΉΠ»ΡΡ ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΆΠ΅ΡΠΎΠ½ΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ ΠΈΠ»ΠΈ (ΠΡΠ΄Π΅ΡΠΎ x Π΅ ΡΠ΅ΡΡΠ½Π°Π΄Π΅ΡΠ΅ΡΠΈΡΠ½Π° ΡΠΈΡΡΠ°). Π’ΠΎΠ²Π° Π΅ ΡΠ΅ΡΡΠ½Π°Π΄Π΅ΡΠ΅ΡΠΈΡΠ½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Unicode ΠΊΠΎΠ΄ΠΎΠ²ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π² ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ UCS-4 (UTF-32). ΠΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π² ΡΠ³Π»ΠΎΠ²ΠΈ ΡΠΊΠΎΠ±ΠΈ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ , <2> ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ) ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° ΠΏΡΠΎΡΡΠΈ Π½ΠΈΠ·ΠΎΠ²ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½ΡΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΌΠΈΡΡΠ» ΠΈΠ·Π²ΡΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
ΡΠ΅Π΄ LC_COLLATE Π½ΠΈ ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΎΠΏΠΈΡΠ²Π°ΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΡΠ»Π΅Π΄Π²Π°ΡΠΈ.
ΠΡΡΠ²ΠΎ ΡΠ΅ Π΄Π°Π²Π°Ρ ΠΈΠΌΠ΅Π½Π° Π·Π° ΡΠ΅Π³Π»Π° Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠΌΠ΅Π½Π° Π·Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΎΡ Π·Π½Π°ΡΠΈ. ΠΠ°ΠΉ-ΠΎΠ±ΡΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΈΠΌΠ΅Π½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ Π½Π° Π΄Π²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ, Π½ΠΎ ΡΠ΅ ΡΠ° ΡΠΌΠ΅ΡΠ΅Π½ΠΈ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡ ΡΠ°ΠΉΠ». ΠΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΠ΅Π³Π»Π°ΡΠ° ΡΠ΅ Π΄Π°Π²Π°Ρ ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ ΡΠΈΠΌΠ²ΠΎΠ» (Π·Π½Π°ΠΊ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅), ΡΡΠΉ ΠΊΠ°ΡΠΎ Unicode Π·Π½Π°ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΡΠ΅Π³Π»Π°, ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΡΠ΅ΡΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΈ Π·Π½Π°ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ°Π²Π½ΡΠ²Π°Ρ.
ΠΠ±ΡΠ°ΡΠ° Π΄ΡΠ»ΠΆΠΈΠ½Π° Π½Π° ΡΠ°Π·Π΄Π΅Π»Π° Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ°ΠΉΠ»Π° Π΅ ΠΎΠΊΠΎΠ»ΠΎ 900 ΡΠ΅Π΄Π°. ΠΠ·Π²Π°Π΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΈ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΡΠ°, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΠΈΠ΄Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
LC_COLLATE
collating-symbol <RES-1>
collating-symbol <BLK>
collating-symbol <MIN>
collating-symbol <WIDE>
...
collating-symbol <ARABIC>
collating-symbol <ETHPC>
collating-symbol <OSMANYA>
...
collating-symbol <S1D000>..<S1D35F>
collating-symbol <SFFFF> % Guaranteed largest symbol value. Keep at end of this list
...
collating-element <U0413_0301> from "<U0413><U0301>"
collating-element <U0413_0341> from "<U0413><U0341>"
- ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° Π½ΠΈΠ· ΠΠ‘ΠΠΠΠ― Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΠΈΠΌΠ΅Π½Π° Π½Π° Π²Π΅Π·Π½ΠΈ
- ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ ΡΠΈΠΌΠ²ΠΎΠ» .. ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΡΡΡΡΠΎΡΡΠ° ΡΠ΅ ΠΎΡ ΠΏΡΠ΅ΡΠΈΠΊΡ S ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄Π΅ΡΠ΅ΡΠΈΡΠ΅Π½ ΡΠΈΡΡΠΎΠ² ΡΡΡΠΈΠΊΡ ΠΎΡ 1D000 Π΄ΠΎ 1D35F.
- FFFF Π² ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ Π³ΠΎΠ»ΡΠΌΠΎ ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ Π±Π΅Π· Π·Π½Π°ΠΊ Π² ΡΠ΅ΡΡΠ½Π°Π΄Π΅ΡΠ΅ΡΠΈΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°
- ΠΈΠΌΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΊΠΎΠ΄ΠΎΠ²Π° ΡΠΎΡΠΊΠ° Π² ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ UCS-4
- ΡΡΠΏΠΎΡΡΠ°Π²ΡΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ" " ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° Π½ΠΎΠ²ΠΎ ΠΈΠΌΠ΅ Π·Π° Π΄Π²ΠΎΠΉΠΊΠ° ΡΠ½ΠΈΠΊΠΎΠ΄ ΡΠΎΡΠΊΠΈ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΠ΅Π³Π»Π°ΡΠ°, ΡΠ΅ ΡΡΠΎΡΠ½ΡΠ²Π°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΡΠ΅Π³Π»Π°. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°ΠΌΠΎ ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡΠ° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ-ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠΌΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, ΡΠ΅Π³Π»Π°ΡΠ° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΡΡΠ΅Π· ΠΏΡΠΎΡΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ ΠΈΠ·Π±ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°. ΠΡΡΠ²ΠΎ ΡΠ° ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ "ΠΏΠΎ-Π»Π΅ΠΊΠΈΡΠ΅" ΡΠ΅ΠΆΠ΅ΡΡΠΈ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° "ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅" ΡΠ΅ΠΆΠ΅ΡΡΠΈ. ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅, ΡΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ Unicode ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Ρ ΡΠ΅ΡΠΈΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π³Π»Π°. Π’ΡΠΊ ΡΠ΅ ΡΠ° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ Π² Π΅Π΄Π½Π° ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ½ΠΎ Π²ΡΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ½ΠΎ ΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° Π²ΡΡΠΊΠΎ ΠΎΡ ΡΠ΅ΡΠΈΡΠΈΡΠ΅ Π½ΠΈΠ²Π°, Π½ΠΎ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ, ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΌΠΈΡΠ»Π΅Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π½ΠΈΠ²Π°.
% Symbolic weight assignments
% Third-level weight assignments
<RES-1>
<BLK>
<MIN>
<WIDE>
...
% Second-level weight assignments
<BASE>
<LOWLINE> % COMBINING LOW LINE
<PSILI> % COMBINING COMMA ABOVE
<DASIA> % COMBINING REVERSED COMMA ABOVE
...
% First-level weight assignments
<S0009> % HORIZONTAL TABULATION
<S000A> % LINE FEED
<S000B> % VERTICAL TABULATION
...
<S0434> % CYRILLIC SMALL LETTER DE
<S0501> % CYRILLIC SMALL LETTER KOMI DE
<S0452> % CYRILLIC SMALL LETTER DJE
<S0503> % CYRILLIC SMALL LETTER KOMI DJE
<S0453> % CYRILLIC SMALL LETTER GJE
<S0499> % CYRILLIC SMALL LETTER ZE WITH DESCENDER
<S0435> % CYRILLIC SMALL LETTER IE
<S04D7> % CYRILLIC SMALL LETTER IE WITH BREVE
<S0454> % CYRILLIC SMALL LETTER UKRAINIAN IE
<S0436> % CYRILLIC SMALL LETTER ZHE
Π Π½Π°ΠΊΡΠ°Ρ, ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΡΠ΅Π³Π»ΠΎ.
Π Π°Π·Π΄Π΅Π»ΡΡ Π·Π° ΡΠ΅Π³Π»ΠΎΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π΄Π΅Π½ Π² ΡΠ΅Π΄ΠΎΠ²Π΅ Ρ ΠΊΠ»ΡΡΠΎΠ²ΠΈ Π΄ΡΠΌΠΈ ΠΏΠΎΡΡΡΠΊΠ°_Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΏΠΎΡΡΡΠΊΠ°_ΠΊΡΠ°ΠΉ. ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ ΠΏΠΎΡΡΡΠΊΠ°_Π½Π°ΡΠ°Π»ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π² ΠΊΠ°ΠΊΠ²Π° ΠΏΠΎΡΠΎΠΊΠ° ΡΠ΅ ΡΠΊΠ°Π½ΠΈΡΠ°Ρ ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π²ΡΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π½Π°ΠΏΡΠ΅Π΄. Π’ΡΠ»ΠΎΡΠΎ Π½Π° ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΊΠΎΠ΄Π° Π½Π° Π·Π½Π°ΠΊΠ° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΡΠΈ ΡΠ΅Π³Π»Π°. ΠΠΎΠ΄ Π½Π° Π·Π½Π°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΠΎΡ ΡΠ°ΠΌΠΈΡ Π·Π½Π°ΠΊ, ΠΊΠΎΠ΄ΠΎΠ²Π° ΡΠΎΡΠΊΠ° ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π½ΠΎ ΠΈΠΌΠ΅, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π°. Π’Π΅Π³Π»Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π΄Π°Π΄Π΅Π½ΠΈ ΠΈ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π½ΠΈ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ. ΠΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ Π·Π½Π°ΡΠΈ, ΡΡΡ Π½ΠΎΡΠΎ ΡΠ΅Π³Π»ΠΎ Π΅ ΡΡΡΠΎΡΠΎ ΠΊΠ°ΡΠΎ ΡΠΈΡΠ»Π΅Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° ΡΠΎΡΠΊΠ° (ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² Unicode ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°). Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ½ΠΎ (Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ), ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΡΠ΅Π³Π»ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Unicode. Π‘ΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΡΠ΅Π³Π»ΠΎΡΠΎ ΠΠΠΠΠ ΠΠ ΠΠΠ’Π ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π΄Π°Π΄Π΅Π½ Π·Π½Π°ΠΊ ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ° Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅.
ΠΠ° Π΄Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅Π³Π»Π°ΡΠ°, ΠΈΠ·Π±ΡΠ°Ρ ΡΡΠΈ Π΄ΠΎΡΡΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°:
- Π·Π½Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Π½ΠΈ
- Π·Π½Π°ΡΠΈ, Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΈ Π½Π° ΡΠΈΡΠ»ΠΎΡΠΎ ΡΡΠΈ Π² ΠΏΡΡΠ²ΠΈΡΠ΅ Π΄Π²Π΅ Π½ΠΈΠ²Π°
- Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΊΠΈΡΠΈΠ»ΠΈΡΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ Π½Π΅ ΡΡΠ΄ΡΡΠΆΠ° Π΄ΠΈΠ°ΠΊΡΠΈΡΠΈΡΠ½ΠΈ Π·Π½Π°ΡΠΈ, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΎ ΠΏΡΡΠ²ΠΎ ΠΈ ΡΡΠ΅ΡΠΎ Π½ΠΈΠ²ΠΎ.
order_start forward;forward;forward;forward,position
<U0000> IGNORE;IGNORE;IGNORE;IGNORE % NULL (in 6429)
<U0001> IGNORE;IGNORE;IGNORE;IGNORE % START OF HEADING (in 6429)
<U0002> IGNORE;IGNORE;IGNORE;IGNORE % START OF TEXT (in 6429)
...
<U0033> <S0033>;<BASE>;<MIN>;<U0033> % DIGIT THREE
<UFF13> <S0033>;<BASE>;<WIDE>;<UFF13> % FULLWIDTH DIGIT THREE
<U2476> <S0033>;<BASE>;<COMPAT>;<U2476> % PARENTHESIZED DIGIT THREE
<U248A> <S0033>;<BASE>;<COMPAT>;<U248A> % DIGIT THREE FULL STOP
<U1D7D1> <S0033>;<BASE>;<FONT>;<U1D7D1> % MATHEMATICAL BOLD DIGIT THREE
...
<U0430> <S0430>;<BASE>;<MIN>;<U0430> % CYRILLIC SMALL LETTER A
<U0410> <S0430>;<BASE>;<CAP>;<U0410> % CYRILLIC CAPITAL LETTER A
<U04D1> <S04D1>;<BASE>;<MIN>;<U04D1> % CYRILLIC SMALL LETTER A WITH BREVE
<U0430_0306> <S04D1>;<BASE>;<MIN>;<U04D1> % CYRILLIC SMALL LETTER A WITH BREVE
...
<U0431> <S0431>;<BASE>;<MIN>;<U0431> % CYRILLIC SMALL LETTER BE
<U0411> <S0431>;<BASE>;<CAP>;<U0411> % CYRILLIC CAPITAL LETTER BE
<U0432> <S0432>;<BASE>;<MIN>;<U0432> % CYRILLIC SMALL LETTER VE
<U0412> <S0432>;<BASE>;<CAP>;<U0412> % CYRILLIC CAPITAL LETTER VE
...
order_end
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠΈΡΠ΅ ΠΎΡ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°. ΠΠ°ΡΠ°Π΄Π°ΡΠ° Π΅ Π² ΡΠ°Π·ΠΈ ΡΠ°ΡΡ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΡΠ΅Π³Π»ΠΎΡΠΎ:
<U0020> IGNORE;IGNORE;IGNORE;<U0020> % SPACE
<U0021> IGNORE;IGNORE;IGNORE;<U0021> % EXCLAMATION MARK
<U0022> IGNORE;IGNORE;IGNORE;<U0022> % QUOTATION MARK
...
ΠΠΈΠΆΠ΄Π° ΡΠ΅, ΡΠ΅ Π² ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠΈ ΠΎΡ ΡΠ°Π±Π» ASCII (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π») ΠΏΠΎΡΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ° ΠΏΡΠΈ ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ° Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠ²ΠΏΠ°Π΄Π°Ρ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΎ, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ°Ρ Π² ΡΡΠ²ΠΏΠ°Π΄Π°ΡΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. Π Π΅Π΄ΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΌΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ (ΡΠ»Π΅Π΄ ΡΠΎΡΡΠΈΡΠ°Π½Π΅) Π·Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΡΠ°ΠΊΠ°:
ΠΠ±Π°ΠΊΠ°Π½ΠΎΠ²ΠΠΈΡ
Π°ΠΈΠ»ΠΌΠ°Π»ΡΡ
ΠΠ»ΠΊΠΈΠ½Π°ΠΠ»Π»Π°ΠΊΡΠ°Π½ΠΎΠ²ΡΠΈΡΠ°
ΠΠ²Π°Π½ΠΎΠ²Π°ΠΠ»Π»Π°ΠΌΠ°Π»ΡΡ
ΠΠ²Π°Π½ΠΎΠ²ΠΠ½Π΄ΡΠ΅ΠΉΡΠ»Π΅ΡΠ°ΡΡ
ΠΠ°ΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΡΠ΅Π³Π»ΠΎ Π³Π»Π°Π²Π½ΠΈ Π±ΡΠΊΠ²ΠΈ Π½Π° ΡΡΡΠΊΠΈ ΠΈΠ΄Π²Π°Ρ ΡΠ»Π΅Π΄ ΠΌΠ°Π»ΠΊΠΈ Π±ΡΠΊΠ²ΠΈ (Π½Π° ΡΡΠ΅ΡΠΎ Π½ΠΈΠ²ΠΎ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ ΠΎΡ ), ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ.
ΠΠΎΠ³Π°ΡΠΎ Π·Π°Π΄Π°Π²Π°ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° LC_COLLATE=C Π·Π°ΡΠ΅ΠΆΠ΄Π° ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π±Π°ΠΉΡ ΠΏΠΎ Π±Π°ΠΉΡ
static const uint32_t collseqwc[] =
{
8, 1, 8, 0x0, 0xff,
/* 1st-level table */
6 * sizeof (uint32_t),
/* 2nd-level table */
7 * sizeof (uint32_t),
/* 3rd-level table */
L'x00', L'x01', L'x02', L'x03', L'x04', L'x05', L'x06', L'x07',
L'x08', L'x09', L'x0a', L'x0b', L'x0c', L'x0d', L'x0e', L'x0f',
...
L'xf8', L'xf9', L'xfa', L'xfb', L'xfc', L'xfd', L'xfe', L'xff'
};
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Unicode ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° ΡΠΎΡΠΊΠ° Π ΠΈΠ΄Π²Π° ΠΏΡΠ΅Π΄ΠΈ A, Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΡΠΎΡΡΠΈΡΠ°Ρ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ.
Π’Π΅ΠΊΡΡΠΎΠ²ΠΈ ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° CTT Π΄ΠΎΡΡΠ° ΡΠΊΡΠΏΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°. ΠΠ° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ° Π΄ΠΎΡΡΡΠΏΡΡ Π΄ΠΎ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΡΡ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° Π² Π΄Π²ΠΎΠΈΡΠ½Π° ΡΠΎΡΠΌΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° localdef.
ΠΡΠ±ΠΎΡ localdef ΠΏΡΠΈΠ΅ΠΌΠ° ΠΊΠ°ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΠ°ΠΉΠ» Ρ ΡΠ°Π±Π»ΠΈΡΠ° Ρ Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ (ΠΎΠΏΡΠΈΡ -i), Π² ΠΊΠΎΠΉΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π·Π½Π°ΡΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ Unicode ΡΠΎΡΠΊΠΈ, ΠΈ Unicode ΡΠ°ΠΉΠ» Π·Π° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠΎΡΠΊΠΈ Π·Π° Π·Π½Π°ΡΠΈ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ (ΠΎΠΏΡΠΈΡ -f). Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Π»ΠΎΠΊΠ°Π»Π° Ρ ΠΈΠΌΠ΅ΡΠΎ, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
glibc ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄Π²Π° Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΎΡΠΌΠ°ΡΠ°: "ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π΅Π½" ΠΈ "ΠΌΠΎΠ΄Π΅ΡΠ΅Π½".
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π»ΠΎΠΊΠ°Π»Π° Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² /usr/lib/locale/. Π’Π°Π·ΠΈ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΡΠ΄ΡΡΠΆΠ° Π΄Π²ΠΎΠΈΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ LC_COLLATE, LC_CTYPE, LC_TIME ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΡΡΠΊ. Π€Π°ΠΉΠ» LC_ΠΠΠΠΠ’ΠΠ€ΠΠΠΠ¦ΠΠ― ΡΡΠ΄ΡΡΠΆΠ° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎΡΠΎ ΠΈΠΌΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π» (ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ°) ΠΈ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ.
ΠΠΎΠ΄Π΅ΡΠ½ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ Π²ΠΊΠ»ΡΡΠ²Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ Π² Π΅Π΄ΠΈΠ½ Π°ΡΡ ΠΈΠ² /usr/lib/locale/locale-archive, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½ ΠΊΡΠΌ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΠ¬Ρ. ΠΠΌΠ΅ΡΠΎ Π½Π° Π»ΠΎΠΊΠ°Π»Π° Π² ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ ΠΏΡΠ΅ΡΡΡΠΏΡΠ²Π° ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°Π½ΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ - Π² ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΎΡΡΠ°Π²Π°Ρ ΡΠ°ΠΌΠΎ ΡΠΈΡΡΠΈ ΠΈ Π±ΡΠΊΠ²ΠΈ, Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈ Π΄ΠΎ ΠΌΠ°Π»ΠΊΠΈ Π±ΡΠΊΠ²ΠΈ. Π’Π°ΠΊΠ° en_RU.KOI8-R, ΡΠ΅ Π±ΡΠ΄Π°Ρ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ ΠΊΠ°ΡΠΎ ru_RU.koi8r.
ΠΡ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ ΡΡΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /usr/share/i18n/locales/ ΠΈ /usr/share/i18n/charmaps/ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ CTT ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
localedef -i ru_RU -f MAC-CYRILLIC ru_RU.MAC-CYRILLIC
ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° ΡΠ°ΠΉΠ»Π° /usr/share/i18n/locales/ru_RU ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠ°ΠΉΠ» Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ /usr/share/i18n/charmaps/MAC-CYRILLIC.gz ΠΈ Π·Π°ΠΏΠ°Π·Π΅ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π² /usr/lib/locale/locale-archive ΠΏΠΎΠ΄ ΠΈΠΌΠ΅ΡΠΎ en_RU.maccyrillic
ΠΠΊΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° LANG = en_US.UTF-8 ΡΠΎ ΠΠ¬Ρ ΡΠ΅ ΡΡΡΡΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ:
/usr/lib/locale/locale-archive
/usr/lib/locale/en_US.UTF-8/
/usr/lib/locale/en_US/
/usr/lib/locale/enUTF-8/
/usr/lib/locale/en/
ΠΠΊΠΎ Π΄Π°Π΄Π΅Π½ Π»ΠΎΠΊΠ°Π» ΡΠ΅ ΡΡΠ΅ΡΠ° ΠΊΠ°ΠΊΡΠΎ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡ, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΡΡ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° locale -a.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°
Π‘Π΅Π³Π°, Π²ΡΠΎΡΡΠΆΠ΅Π½ΠΈ ΡΡΡ Π·Π½Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΠΈΠ΄Π΅Π°Π»Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅. Π’Π°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΡΠ±Π²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΡΡΠ°Π²Π½ΡΠ²Π° ΡΡΡΠΊΠΈΡΠ΅ Π±ΡΠΊΠ²ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π±ΡΠΊΠ²Π°ΡΠ° Π, ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΡΠ΅ΠΏΠΈΠ½Π°ΡΠ΅Π»Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠΈ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ASCII.
ΠΡΠΎΡΠ΅ΡΡΡ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄Π²Π° Π΅ΡΠ°ΠΏΠ°: ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΡΠ΅Π³Π»ΠΎΡΠΎ ΠΈ Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π² Π΄Π²ΠΎΠΈΡΠ½Π° ΡΠΎΡΠΌΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° localdef.
ΠΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ Π·Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡ, Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ ISO 14652 ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΈ ΡΠ° ΡΠ΅ΠΊΡΠΈΠΈ Π·Π° ΡΠ΅Π³ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³Π»Π°ΡΠ° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° ΠΌΠ°ΡΠ°. Π Π°Π·Π΄Π΅Π»ΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΊΠ»ΡΡΠΎΠ²Π° Π΄ΡΠΌΠ° ΠΏΡΠ΅Π½Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅-ΡΠ»Π΅Π΄ ΠΈ ΡΡΠΎΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ°, ΡΠ»Π΅Π΄ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎΠ΄ΠΌΡΠ½Π°ΡΠ°. ΠΠ°Π²ΡΡΡΠ²Π° ΡΠ΅ΠΊΡΠΈΡΡΠ° Ρ Π»ΠΈΠ½ΠΈΡ ΠΏΡΠ΅Π½Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅-ΠΊΡΠ°ΠΉ. ΠΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΡΠ°Π·Π΄Π΅Π» Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΊΡΠ² ΡΠ°Π·Π΄Π΅Π».
ΠΠΎΠΏΠΈΡΠ°Ρ Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ iso14651_t1_common ΠΈ ru_ru ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΠ¬Ρ Π²ΡΠ² Π²Π°ΡΠ°ΡΠ° Π΄ΠΎΠΌΠ°ΡΠ½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ~/.local/share/i18n/locales/ ΠΈ Π»Π΅ΠΊΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Ρ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° LC_COLLATE Π² ru_ru. ΠΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Ρ ΠΌΠΎΡΡΠ° Π²Π΅ΡΡΠΈΡ ΠΠ¬Ρ. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎ-ΡΡΠ°ΡΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π½ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Π·Π°ΠΌΡΠ½Π°ΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°.
LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
reorder-after <U000D>
<U0020> <S0020>;<BASE>;<MIN>;<U0020> % SPACE
<U0021> <S0021>;<BASE>;<MIN>;<U0021> % EXCLAMATION MARK
<U0022> <S0022>;<BASE>;<MIN>;<U0022> % QUOTATION MARK
...
<U007D> <S007D>;<BASE>;<MIN>;<U007D> % RIGHT CURLY BRACKET
<U007E> <S007E>;<BASE>;<MIN>;<U007E> % TILDE
reorder-end
END LC_COLLATE
ΠΡΡΡΠ½ΠΎΡΡ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ»Π΅ΡΠ°ΡΠ° Π² LC_ΠΠΠΠΠ’ΠΠ€ΠΠΠΠ¦ΠΠ― ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΡΠΎΡΠ°Ρ ΠΊΡΠΌ Π»ΠΎΠΊΠ°Π»Π° en_MY, Π½ΠΎ Π² ΠΌΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ²Π° Π½Π΅ Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡ Π°ΡΡ ΠΈΠ²Π° ΠΎΡ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈ Π»ΠΎΠΊΠ°Π»-Π°ΡΡ ΠΈΠ².
Π§Π΅ localdef ΡΠ°Π±ΠΎΡΠΈ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° ΠΌΠΈ ΡΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° I18NPATH ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½Π° ΠΊΠ°ΡΠΎ ΠΏΡΡ Ρ Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈ ΡΠ΅ΡΡΠΈ:
$> I18NPATH=~/.local/share/i18n localedef -i ru_RU -f UTF-8 ~/.local/lib/locale/ru_MY.UTF-8
POSIX ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ Π² ΠΠΠΠ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΈ ΠΏΡΡΠΈΡΠ° ΠΊΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Ρ Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½Π° ΡΠ΅ΡΡΠ°, Π½ΠΎ ΠΠ¬Ρ Π² Linux Π²ΡΠΈΡΠΊΠΈ ΠΏΡΡΠΈΡΠ° ΡΠ΅ Π±ΡΠΎΡΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° ΡΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° LOCPATH... Π‘Π»Π΅Π΄ ΠΌΠΎΠ½ΡΠ°ΠΆΠ° LOCPATH=~/.local/lib/locale/ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°, ΡΠ΅ ΡΠ΅ ΡΡΡΡΡΡ ΡΠ°ΠΌΠΎ Π² ΠΌΠΎΡΡΠ° ΠΏΠ°ΠΏΠΊΠ°. ΠΡΡ ΠΈΠ² Π½Π° Π»ΠΎΠΊΠ°Π»Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° LOCPATH ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Π½.
ΠΡΠΎ ΠΈ ΡΠΈΠ½Π°Π»Π½ΠΈΡ ΡΠ΅ΡΡ:
$> LANG=ru_MY.UTF-8 LOCPATH=~/.local/lib/locale/ sort buhg.txt
ΠΠ±Π°ΠΊΠ°Π½ΠΎΠ² ΠΠΈΡ
Π°ΠΈΠ»;ΠΌΠ°Π»ΡΡ
ΠΠ»ΠΊΠΈΠ½Π° ΠΠ»Π»Π°;ΠΊΡΠ°Π½ΠΎΠ²ΡΠΈΡΠ°
ΠΠ²Π°Π½ΠΎΠ² ΠΠ½Π΄ΡΠ΅ΠΉ;ΡΠ»Π΅ΡΠ°ΡΡ
ΠΠ²Π°Π½ΠΎΠ²Π° ΠΠ»Π»Π°;Π°Π΄Π²ΠΎΠΊΠ°Ρ
Π£ΡΠ°! Π£ΡΠΏΡΡ ΠΌΠ΅!
ΠΡΠΊΠΎΠΈ Π³ΡΠ΅ΡΠΊΠΈ
ΠΠ΅ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡ Π½Π° Π²ΡΠΏΡΠΎΡΠΈΡΠ΅ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ, Π½ΠΎ ΠΈΠΌΠ° ΠΎΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠΏΡΠΎΡΠ° Π·Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ - Π²ΠΈΠ΄ΠΈΠΌΠΈ ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΈ.
ΠΠ° ΡΠ΅ ββΠ²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π²ΠΈΠ΄ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΡ ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΡΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ ΠΎΡ ΠΠ¬Ρ. ΠΠ°ΠΊ ΡΡΠ°Π½Π° ΡΠ°ΠΊΠ°, ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΡ ΠΊΡΠΌ Π΄Π°Π΄Π΅ Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅, ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π²ΠΈΠ΄ Π² Π»ΠΎΠΊΠ°Π» en_US.UTF-8? ΠΡΠ³ΠΎΠ²ΠΎΡΡΡ Π΅ ΠΏΡΠΎΡΡ: Π²ΠΈΠ΄ ΡΡΠ°Π²Π½ΡΠ²Π° ΡΠ΅Π»ΠΈΡ Π½ΠΈΠ· ΠΈ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΡ ΠΊΡΠΌ ΡΡΠ°Π²Π½ΡΠ²Π° ΡΠ°ΠΌΠΎ ΠΊΠ»ΡΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π½ΠΈΠ·Π° Π΄ΠΎ ΠΏΡΡΠ²ΠΈΡ ΠΏΡΠ°Π·Π΅Π½ Π·Π½Π°ΠΊ. Π ΠΌΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π³ΡΠ΅ΡΠΊΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΡΠ²ΠΈΡΠ΅ Π΄ΡΠΌΠΈ Π² ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΡΡΠ²ΠΏΠ°Π΄Π° ΡΡΡ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ»Π½ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅.
Π»ΠΎΠΊΠ°Π» "Β° Π‘" Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ Π² ΡΠΎΡΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅, Π²ΠΎΠ΄Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠ·ΠΎΠ²Π΅ Π΄ΠΎ ΠΏΡΡΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ, Π½ΠΎ ΡΠΎΠ²Π° ΡΠ°ΠΌΠΎ ΠΌΠ°ΡΠΊΠΈΡΠ° Π³ΡΠ΅ΡΠΊΠ°ΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΠ°ΠΊΠΈΠ²Π° Π΄Π°Π½Π½ΠΈ (Ρ ΠΎΡΠ° Ρ Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΌΠΈΠ»Π½ΠΎ ΠΈΠΌΠ΅, Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠΌΠ΅Π½Π°), ΠΊΠΎΠΈΡΠΎ Π±Π΅Π· ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π³ΡΠ΅ΡΠΊΠ° Π±ΠΈΡ Π° Π΄Π°Π»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΎΡ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΡ ΠΊΡΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΏΠΎ ΠΏΡΠ»Π½ΠΎ ΠΈΠΌΠ΅, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π±ΠΈ Π±ΠΈΠ» ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ ΠΈ Π΄Π° ΡΠΎΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎ ΠΊΠ»ΡΡΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠ»Π΅, Π° Π½Π΅ ΠΏΠΎ ΡΠ΅Π»ΠΈΡ ΡΠ΅Π΄. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ ΡΡΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° Π³ΡΠ΅ΡΠΊΠΈ Π² Π½ΠΈΡΠΎ Π΅Π΄ΠΈΠ½ Π»ΠΎΠΊΠ°Π»:
$> sort -t ; -k 1 buhg.txt > buhg.srt
$> sort -t ; -k 1 mail.txt > mail.srt
$> join -t ; buhg.srt mail.srt > result
Π£ΡΠΏΠ΅ΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ ΠΏΡΠΈΠΌΠ΅Ρ CP1251 ΡΡΠ΄ΡΡΠΆΠ° Π΄ΡΡΠ³Π° Π³ΡΠ΅ΡΠΊΠ°. Π€Π°ΠΊΡ Π΅, ΡΠ΅ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΌΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ Linux ΠΏΠ°ΠΊΠ΅ΡΠΈ Π±Π΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Π»ΠΎΠΊΠ°Π» en_RU.CP1251. ΠΠΊΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΡ Π»ΠΎΠΊΠ°Π» Π½Π΅ Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½, ΡΠΎΠ³Π°Π²Π° Π²ΠΈΠ΄ Π±Π΅Π·ΡΡΠΌΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ ΠΏΠΎ Π±Π°ΠΉΡ, ΠΊΠΎΠ΅ΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Ρ ΠΌΠ΅.
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΈΠΌΠ° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΌΠ°Π»ΡΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡΡΠ·Π°Π½ Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ. ΠΠΊΠΈΠΏ LOCPATH=/tmp Π»ΠΎΠΊΠ°Π» -a ΡΠ΅ Π²ΡΡΠ½Π΅ ΡΠΏΠΈΡΡΠΊ Ρ Π²ΡΠΈΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ Π² Π»ΠΎΠΊΠ°Π»-Π°ΡΡ ΠΈΠ², Π½ΠΎ Ρ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ LOCPATH Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΌΡΡΡΠΎ) ΡΠ΅Π·ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°Π»ΠΈΡΠ½ΠΈ.
$> LOCPATH=/tmp locale -a | grep en_US
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
$> LC_COLLATE=en_US.UTF-8 sort --debug
sort: using βen_US.UTF-8β sorting rules
$> LOCPATH=/tmp LC_COLLATE=en_US.UTF-8 sort --debug
sort: using simple byte comparison
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΊΠΎ ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ²ΠΈΠΊΠ½Π°Π» Π΄Π° ΠΌΠΈΡΠ»ΠΈ, ΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ ΡΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ Π±Π°ΠΉΡΠΎΠ²Π΅, ΡΠΎΠ³Π°Π²Π° Π²Π°ΡΠΈΡΡ ΠΈΠ·Π±ΠΎΡ Π΅ LC_COLLATE=C.
ΠΠΊΠΎ ΡΡΠ΅ Π»ΠΈΠ½Π³Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠ°Π²ΠΈΡΠ΅Π» Π½Π° ΡΠ΅ΡΠ½ΠΈΠΊ, ΡΠΎΠ³Π°Π²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΡ Π»ΠΎΠΊΠ°Π».
ΠΠΊΠΎ ΡΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ²ΠΈΠΊΠ½Π΅ΡΠ΅ Ρ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ls -a ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°ΠΏΠΎΡΠ²Π°ΡΠΈ Ρ ΡΠΎΡΠΊΠ°, ΠΎΡΠ΅ΡΠ½ΠΈ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°ΠΏΠΎΡΠ²Π°ΡΠΈ Ρ Π±ΡΠΊΠ²Π°, ΠΈ Π‘ΡΠ΅Π΄Π½ΠΎΡΠ½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°, ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°ΠΏΠΎΡΠ²Π°ΡΠΈ Ρ ΡΠΎΡΠΊΠ°, Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠΏΠΈΡΡΠΊΠ°.
ΠΠΎΠ·ΠΎΠ²Π°Π²Π°Π½Π΅ΡΠΎ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com