ΠΠΊΠΎ ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΡΡΠ΅ ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, ΡΠΎΠ³Π°Π²Π° Unicode ΠΏΠΎΡΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π½ΠΎ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΠΈ ΡΡΠΊ ΠΈΠΌΠ° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΎΡΠ³ΠΎΠ²ΠΎΡ - UTF-8. Π₯ΡΠ±Π°Π²ΠΎΡΠΎ ΠΏΡΠΈ Π½Π΅Π³ΠΎ Π΅, ΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Unicode Π·Π½Π°ΡΠΈ, Π±Π΅Π· Π΄Π° Ρ
Π°ΡΡΠΈΡΠ΅ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠΎΠ²Π΅ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ. ΠΡΡΠ½ΠΎ Π΅, ΡΠ΅ Π·Π° Π΅Π·ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π»Π°ΡΠΈΠ½ΡΠΊΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ°, βΠ½Π΅ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎβ Π΅ ΠΏΠΎΠ½Π΅ Π΄Π²Π° Π±Π°ΠΉΡΠ° Π½Π° Π·Π½Π°ΠΊ. ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅, Π±Π΅Π· Π΄Π° ΡΠ΅ Π²ΡΡΡΠ°ΠΌΠ΅ ΠΊΡΠΌ ΠΏΡΠ°ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Ρ Π΄ΠΎ ΡΠ°ΠΌΠΎ 256 Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π½Π°ΠΊΠ°?
ΠΠΎ-Π΄ΠΎΠ»Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ ΠΌΠΎΡ ΠΎΠΏΠΈΡ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΡ Π½Π° ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ ΠΈ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ° ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΅Π·ΠΈΡΠΈ ΠΏΠΎ ΡΠ²Π΅ΡΠ°, Π±Π΅Π· Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ·Π»ΠΈΡΡΠΊΠ°, ΠΊΠΎΠΉΡΠΎ Π΅ Π² UTF-8.
ΠΠΏΡΠΎΠ²Π΅ΡΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΠΆΠ½ΠΈ ΡΠ³ΠΎΠ²ΠΎΡΠΊΠΈ: ΠΎΠΏΠΈΡΠ°Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΊΠ°ΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π» Π½Π° UTF-8, ΡΠΎΠΉ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΡΠ°ΠΌΠΎ Π² ΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ ΠΎΡ ΡΠ»ΡΡΠ°ΠΈ (ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΡ ΠΏΠΎ-Π΄ΠΎΠ»Ρ) ΠΈ Π² Π½ΠΈΠΊΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ API Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ (ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΡΠΈ Π½Π΅ Π·Π½Π°ΡΡ Π·Π° Π½Π΅Π³ΠΎ). ΠΠ°ΠΉ-ΡΠ΅ΡΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ deflate) ΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΎΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΠΌΠ΅ΡΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡ Π² ΡΠ°ΠΌΠΈΡ Unicode, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΡΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ - ΡΠΎΠΉ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ΅Π½ (ΠΈ ΡΠ΅ΡΡΠΎ ΠΏΠΎ-Π»ΠΎΡ), Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ Π΅ ΠΏΡΠΈΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡ, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠ°Π²Π΅Π½ Π·Π°Π΅Π΄Π½ΠΎ Π½Π° ΠΊΠΎΠ»ΡΠ½ΠΎΡΠΎ. Π©Π΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΈ Π·Π° Π½Π΅Π³ΠΎ.
ΠΡΠ½ΠΎΡΠ½ΠΎ Unicode ΠΈ UTF-8
ΠΠ°ΡΠΎ Π½Π°ΡΠ°Π»ΠΎ, Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠΌΠΈ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Unicode ΠΈ UTF-8.
ΠΠ°ΠΊΡΠΎ Π·Π½Π°Π΅ΡΠ΅, 8-Π±ΠΈΡΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π±ΡΡ Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ. ΠΡΠΈ ΡΡΡ Π²ΡΠΈΡΠΊΠΎ Π±Π΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ: 256 Π·Π½Π°ΠΊΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½ΠΎΠΌΠ΅ΡΠΈΡΠ°Π½ΠΈ Ρ ΡΠΈΡΠ»Π° ΠΎΡ 0 Π΄ΠΎ 255, Π° ΡΠΈΡΠ»Π°ΡΠ° ΠΎΡ 0 Π΄ΠΎ 255 ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ. ΠΠΊΠΎ ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ Π² ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ, ASCII ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ Π΄ΠΎ 7 Π±ΠΈΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π°ΠΉ-Π·Π½Π°ΡΠΈΠΌΠΈΡΡ Π±ΠΈΡ Π² Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ Π±Π°ΠΉΡΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π΅ Π½ΡΠ»Π° ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ 8-Π±ΠΈΡΠΎΠ²ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Ρ Π½Π΅Π³ΠΎ (ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ ΡΠ°ΠΌΠΎ Π² βΠ³ΠΎΡΠ½ΠΈΡβ ΡΠ°ΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ Π½Π°ΠΉ-Π·Π½Π°ΡΠΈΠΌΠΈΡΡ Π±ΠΈΡ Π΅ Π΅Π΄ΠΈΠ½ΠΈΡΠ°).
ΠΠ°ΠΊ Unicode ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΡΠ΅Π·ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΡΠΎ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½ΠΈΡ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π΅Π³ΠΎ - UTF-8, UTF-16 (BE ΠΈ LE), UTF-32? ΠΠ΅ΠΊΠ° Π³ΠΎ ΠΏΠΎΠ΄ΡΠ΅Π΄ΠΈΠΌ ΠΏΠΎ ΡΠ΅Π΄.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ Unicode ΠΎΠΏΠΈΡΠ²Π° ΡΠ°ΠΌΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π½Π°ΡΠΈ (ΠΈ Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Π·Π½Π°ΡΠΈ) ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ°. Π ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΠΈΡΠ»Π° Π² ΡΠΎΠ·ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡ - ΠΎΡ 0x00
Π΄ΠΎ 0x10FFFF
(1 114 112 Π±ΡΠΎΡ). ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΠ»ΠΎ Π² ΡΠ°ΠΊΡΠ² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, Π½ΠΈΡΠΎ 1, Π½ΠΈΡΠΎ 2 Π±Π°ΠΉΡΠ° Π½ΡΠΌΠ° Π΄Π° ΡΠ° Π½ΠΈ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ. Π ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Π½Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠΈΠ±Π°ΠΉΡΠΎΠ²ΠΈ ΡΠΈΡΠ»Π°, ΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΄ΠΎ 4 Π±Π°ΠΉΡΠ° Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»! Π’ΠΎΠ²Π° Π΅ UTF-32, Π½ΠΎ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°Π·ΠΈ "ΡΠ°Π·ΡΠΎΡΠΈΡΠ΅Π»Π½ΠΎΡΡ" ΡΠΎΠ·ΠΈ ΡΠΎΡΠΌΠ°Ρ Π½Π΅ Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½.
ΠΠ° ΡΠ°ΡΡΠΈΠ΅ ΡΠ΅Π΄ΡΡ Π½Π° Π·Π½Π°ΡΠΈΡΠ΅ Π² Unicode Π½Π΅ Π΅ ΡΠ»ΡΡΠ°Π΅Π½. Π¦Π΅Π»ΠΈΡΡ ΠΈΠΌ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 17 "ΡΠ°ΠΌΠΎΠ»Π΅ΡΠΈ", Π²ΡΡΠΊΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° 65536 (0x10000
) "ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠΎΡΠΊΠΈ" ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° βΠΊΠΎΠ΄ΠΎΠ²Π° ΡΠΎΡΠΊΠ°β ΡΡΠΊ Π΅ ΠΏΡΠΎΡΡΠ° Π½ΠΎΠΌΠ΅Ρ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈ ΠΌΡ ΠΎΡ Unicode. ΠΠΎ, ΠΊΠ°ΠΊΡΠΎ Π±Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅, Π² Unicode Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠΈ ΡΠ° Π½ΠΎΠΌΠ΅ΡΠΈΡΠ°Π½ΠΈ, Π½ΠΎ ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΈ Π·Π½Π°ΡΠΈ (Π° ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΈΠ·ΠΎΠ±ΡΠΎ Π½ΠΈΡΠΎ Π½Π΅ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° Π½ΠΎΠΌΠ΅ΡΠ° - ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π·Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π½ΠΎ Π·Π° Π½Π°Ρ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π²Π°ΠΆΠ½ΠΎ), ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎ-ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π·Π° Π±ΡΠΎΡ Π½Π° ΡΠ°ΠΌΠΈΡΠ΅ ΡΠΈΡΠ»Π°, Π° Π½Π΅ Π·Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ, Π·Π° ΠΊΡΠ°ΡΠΊΠΎΡΡ, ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π΄ΡΠΌΠ°ΡΠ° βΡΠΈΠΌΠ²ΠΎΠ»β, Π·Π°Π³Π°ΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π° βΠΊΠΎΠ΄ΠΎΠ²Π° ΡΠΎΡΠΊΠ°β.
Unicode ΡΠ°ΠΌΠΎΠ»Π΅ΡΠΈ. ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ°ΡΡ (ΡΠ°ΠΌΠΎΠ»Π΅ΡΠΈ ΠΎΡ 4 Π΄ΠΎ 13) Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°.
ΠΠ°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΠΎ Π΅, ΡΠ΅ ΡΡΠ»Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° βΠΏΡΠ»ΠΏΠ°β Π»Π΅ΠΆΠΈ Π² Π½ΡΠ»Π΅Π²Π°ΡΠ° ΡΠ°Π²Π½ΠΈΠ½Π°, ΡΡ ΡΠ΅ Π½Π°ΡΠΈΡΠ° "ΠΡΠ½ΠΎΠ²Π΅Π½ ΠΌΠ½ΠΎΠ³ΠΎΠ΅Π·ΠΈΡΠ΅Π½ ΠΏΠ»Π°Π½". ΠΠΊΠΎ ΡΠ΅Π΄ΡΡ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ΅ΠΊΡΡ Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈ), Π½ΡΠΌΠ° Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅ΡΠ΅ ΠΎΡΠ²ΡΠ΄ ΡΠ°Π·ΠΈ ΡΠ°Π²Π½ΠΈΠ½Π°. ΠΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΡΠ΅ΠΆΠ΅ΡΠ΅ ΠΈ ΠΎΡΡΠ°Π½Π°Π»Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Unicode - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΠΌΠΎΡΠΈΠΊΠΎΠ½ΠΈ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π³Π»Π°Π²Π½ΠΎ Π² ΠΊΡΠ°Ρ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΡ ΡΠ°ΠΌΠΎΠ»Π΅Ρ,"ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΌΠ½ΠΎΠ³ΠΎΠ΅Π·ΠΈΡΠ΅Π½ ΡΠ°ΠΌΠΎΠ»Π΅Ρ"(ΠΏΡΠΎΡΡΠΈΡΠ° ΡΠ΅ ΠΎΡ 0x10000
Π΄ΠΎ 0x1FFFF
). Π’Π°ΠΊΠ° ΡΠ΅ UTF-16 ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π°: Π²ΡΠΈΡΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, ΠΏΠΎΠΏΠ°Π΄Π°ΡΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ ΠΡΠ½ΠΎΠ²Π΅Π½ ΠΌΠ½ΠΎΠ³ΠΎΠ΅Π·ΠΈΡΠ΅Π½ ΠΏΠ»Π°Π½, ΡΠ° ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ βΠΊΠ°ΠΊΡΠΎ Π΅β ΡΡΡ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ Π΄Π²ΡΠ±Π°ΠΉΡΠΎΠ² Π½ΠΎΠΌΠ΅Ρ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΠΈΡΠ»Π°ΡΠ° Π² ΡΠΎΠ·ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π·Π½Π°ΡΠΈ, Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ, ΡΠ΅ ΡΠ»Π΅Π΄ ΡΠ°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° Π±Π°ΠΉΡΠΎΠ²Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄Π½Π° - ΡΡΠ΅Π· ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π·ΠΈ ΡΠ΅ΡΠΈΡΠΈ Π±Π°ΠΉΡΠ° Π·Π°Π΅Π΄Π½ΠΎ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΊΡΠΈΠ²Π° ΡΠ΅Π»ΠΈΡ Π²Π°Π»ΠΈΠ΄Π΅Π½ Unicode Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. Π’Π°Π·ΠΈ ΠΈΠ΄Π΅Ρ ΡΠ΅ Π½Π°ΡΠΈΡΠ° βΡΡΡΠΎΠ³Π°ΡΠ½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈβ β ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΡΠ΅ ΡΡΠ²Π°Π»ΠΈ Π·Π° ΡΡΡ
.
Π’Π°ΠΊΠ° ΡΠ΅ UTF-16 ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄Π²Π° ΠΈΠ»ΠΈ (Π² ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΄ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ) ΡΠ΅ΡΠΈΡΠΈ Π±Π°ΠΉΡΠ° Π½Π° "ΠΊΠΎΠ΄ΠΎΠ²Π° ΡΠΎΡΠΊΠ°". Π’ΠΎΠ²Π° Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ΅ΡΠΈΡΠΈ Π±Π°ΠΉΡΠ° ΠΏΡΠ΅Π· ΡΡΠ»ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½ΠΎ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡΠ΅ (ΠΈ Π΄ΡΡΠ³ΠΈ ASCII Π·Π½Π°ΡΠΈ), ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ° ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π³ΡΠ±ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΡΠ° ΠΌΡΡΡΠΎ Π²ΡΡΡ
Ρ Π½ΡΠ»ΠΈ. UTF-8 Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ° ΡΠΎΠ²Π°: ASCII Π² Π½Π΅Π³ΠΎ Π·Π°Π΅ΠΌΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΈ, ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ; ΠΊΠΎΠ΄ΠΎΠ²Π΅ ΠΎΡ 0x80
Π΄ΠΎ 0x7FF
- Π΄Π²Π° Π±Π°ΠΉΡΠ°; ΠΎΡ 0x800
Π΄ΠΎ 0xFFFF
- ΡΡΠΈ, ΠΈ ΠΎΡ 0x10000
Π΄ΠΎ 0x10FFFF
- ΡΠ΅ΡΠΈΡΠΈ. ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, Π»Π°ΡΠΈΠ½ΡΠΊΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ° ΡΡΠ°Π½Π° Π΄ΠΎΠ±ΡΠ°: ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ ASCII ΡΠ΅ Π²ΡΡΠ½Π° ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΏΠΎ-ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ βΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎβ ΠΎΡ 1 Π΄ΠΎ 4 Π±Π°ΠΉΡΠ°. ΠΠΎ Π°Π·Π±ΡΠΊΠΈΡΠ΅, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ Π»Π°ΡΠΈΠ½ΠΈΡΠ°, ΡΠ²ΠΈ, Π½Π΅ ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎ Π½ΠΈΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ UTF-16 ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΡΡ
Π²Π΅ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΡΠΈ Π±Π°ΠΉΡΠ° Π²ΠΌΠ΅ΡΡΠΎ Π΄Π²Π° - Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΡΡ, ΠΏΠΎΠΊΡΠΈΡ ΠΎΡ Π΄Π²ΡΠ±Π°ΠΉΡΠΎΠ² Π·Π°ΠΏΠΈΡ, Π΅ ΡΡΠ΅ΡΠ½Π΅Π½ Ρ 32 ΠΏΡΡΠΈ, Ρ 0xFFFF
Π΄ΠΎ 0x7FF
, ΠΊΠ°ΡΠΎ Π² Π½Π΅Π³ΠΎ Π½Π΅ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π½ΠΈΡΠΎ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈ, Π½ΠΈΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π³ΡΡΠ·ΠΈΠ½ΡΠΊΠΈ. ΠΠΈΡΠΈΠ»ΠΈΡΠ° ΠΈ ΠΏΠ΅Ρ Π΄ΡΡΠ³ΠΈ Π°Π·Π±ΡΠΊΠΈ - ΡΡΠ° - ΠΊΡΡΠΌΠ΅Ρ, 2 Π±Π°ΠΉΡΠ° Π½Π° Π·Π½Π°ΠΊ.
Π·Π°ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠΎΠ²Π° ΠΠ΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ UTF-8 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΊΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π·Π½Π°ΡΠΈΡΠ΅:
Π’ΡΠΊ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠΈΡΠ»Π°, Π±ΠΈΡΠΎΠ²Π΅, ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° x
. ΠΠΈΠΆΠ΄Π° ΡΠ΅, ΡΠ΅ Π² Π΄Π²ΡΠ±Π°ΠΉΡΠΎΠ² Π·Π°ΠΏΠΈΡ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ 11 ΡΠ°ΠΊΠΈΠ²Π° Π±ΠΈΡΠ° (ΠΎΡ 16). ΠΠΎΠ΄Π΅ΡΠΈΡΠ΅ Π±ΠΈΡΠΎΠ²Π΅ ΡΡΠΊ ΠΈΠΌΠ°Ρ ΡΠ°ΠΌΠΎ ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΠ΅ΡΠΈΡΠΈΠ±Π°ΠΉΡΠΎΠ² Π·Π°ΠΏΠΈΡ, 21 ΠΎΡ 32 Π±ΠΈΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π·Π° Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° ΡΠΎΡΠΊΠ° - ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΡΠΈ Π±Π°ΠΉΡΠ° (ΠΊΠΎΠΈΡΠΎ Π΄Π°Π²Π°Ρ ΠΎΠ±ΡΠΎ 24 Π±ΠΈΡΠ°) Π±ΠΈΡ
Π° Π±ΠΈΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ, Π½ΠΎ ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠΈ ΠΈΠ·ΡΠΆΠ΄Π°Ρ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ.
ΡΠΎΠ²Π° Π»ΠΎΡΠΎ Π»ΠΈ Π΅ ΠΠ΅ ΡΠΎΡΠ½ΠΎ. ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, Π°ΠΊΠΎ Π΄ΡΡΠΆΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°Ρ ΡΡΠ»Π°ΡΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π΅Π½ΡΡΠΎΠΏΠΈΡ ΠΈ ΠΈΠ·Π»ΠΈΡΡΠΊ. ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, ΡΠ΅Π»ΡΠ° Π½Π° Unicode Π±Π΅ΡΠ΅ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ΅Π΄, ΠΊΠΎΠ΄ΠΈΡΠ°Π½ Π² UTF-8, Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ ΡΠ°Π±ΠΎΡΠΈΠ» ΡΠ°ΠΌΠΎ Ρ ASCII, ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΡΡΡΠ°Ρ
ΡΠ²Π°ΠΌΠ΅, ΡΠ΅ ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ASCII, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ Π΅ ΡΠ°ΠΌ (Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π² UTF-8 Π²ΡΠΈΡΠΊΠΈ Π±Π°ΠΉΡΠΎΠ²Π΅, Π·Π°ΠΏΠΎΡΠ²Π°ΡΠΈ ΠΎΡ Π½ΡΠ»Π΅Π²ΠΈΡ Π±ΠΈΡ - ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²Π° Π΅ ASCII). Π Π°ΠΊΠΎ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΎΡΡΠ΅ΠΆΠ΅ΠΌ ΠΌΠ°Π»ΠΊΠ° ΠΎΠΏΠ°ΡΠΊΠ° ΠΎΡ Π³ΠΎΠ»ΡΠΌ Π½ΠΈΠ·, Π±Π΅Π· Π΄Π° Π³ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΠΌΠ΅ ΠΎΡ ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ (ΠΈΠ»ΠΈ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΡΠ°ΡΡ ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° ΡΠ»Π΅Π΄ ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½Π° ΡΠ΅ΠΊΡΠΈΡ), Π·Π° Π½Π°Ρ Π΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Π·Π½Π°ΠΊ (Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΅ Π·Π° Π΄Π° ΠΏΡΠΎΠΏΡΡΠ½Π΅ΡΠ΅ Π±Π°ΠΉΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π±ΠΈΡΠΎΠ² ΠΏΡΠ΅ΡΠΈΠΊΡ 10
).
ΠΠ°ΡΠΎ ΡΠΎΠ³Π°Π²Π° Π΄Π° ΠΈΠ·ΠΌΠΈΡΠ»ΡΡ Π½Π΅ΡΠΎ Π½ΠΎΠ²ΠΎ?
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΈΠΌΠ° ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΊΠ°ΡΠΎ deflate ΡΠ° ΡΠ»Π°Π±ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ, Π½ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅. ΠΠΈΡΠ½ΠΎ Π°Π· ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ
Ρ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΈΡΠ»Π΅Ρ
Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅
ΠΡΠ΄Π΅Π»Π½ΠΎ Π±ΠΈΡ
ΠΈΡΠΊΠ°Π» Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠ° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π½Π΅ΠΏΡΠΈΡΡΠ΅Π½ Π½ΡΠ°Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° UTF-8 Π² ΡΠ°ΠΊΠ°Π²Π° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅. ΠΠ°ΡΡΠΈΠ½Π°ΡΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ Π·Π½Π°ΠΊΡΡ Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ Π΄Π²Π° Π±Π°ΠΉΡΠ°, Π±ΠΈΡΠΎΠ²Π΅ΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π΅Π³ΠΎΠ²ΠΈΡ Π½ΠΎΠΌΠ΅Ρ, Π½Π΅ ΠΈΠ΄Π²Π°Ρ Π² ΡΠ΅Π΄, Π° ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠ° Π±ΠΈΡΠΎΠ²Π΅ 10
ΠΏΠΎ ΡΡΠ΅Π΄Π°ΡΠ°: 110xxxxx 10xxxxxx
. ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠ»Π½ΠΈΡΠ΅ 6 Π±ΠΈΡΠ° Π½Π° Π²ΡΠΎΡΠΈΡ Π±Π°ΠΉΡ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Ρ Π² ΠΊΠΎΠ΄Π° Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° (Ρ.Π΅. Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΠΏΡΠ΅Ρ
ΠΎΠ΄ 10111111
β 10000000
), ΡΠΎΠ³Π°Π²Π° ΠΏΡΡΠ²ΠΈΡΡ Π±Π°ΠΉΡ ΡΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ. ΠΠΊΠ°Π·Π²Π° ΡΠ΅, ΡΠ΅ Π±ΡΠΊΠ²Π°ΡΠ° "p" ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π²Π° Ρ Π±Π°ΠΉΡΠΎΠ²Π΅ 0xD0 0xBF
, Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ βrβ Π΅ Π²Π΅ΡΠ΅ 0xD1 0x80
. Π ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎ Π΄ΡΡΠ²ΠΎ ΡΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈΡ Π²ΡΠ·Π΅Π» Π½Π° Π΄Π²Π° - Π΅Π΄ΠΈΠ½ Π·Π° ΠΏΡΠ΅ΡΠΈΠΊΡΠ° 0xD0
, ΠΈ Π΄ΡΡΠ³ Π·Π° 0xD1
(Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΡΠ»Π°ΡΠ° ΠΊΠΈΡΠΈΠ»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π° ΡΠ°ΠΌΠΎ ΠΎΡ Π²ΡΠΎΡΠΈΡ Π±Π°ΠΉΡ).
ΠΠ°ΠΊΠ²ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ
ΠΠ·ΠΏΡΠ°Π²Π΅Π½ ΠΏΡΠ΅Π΄ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ΅ΡΠΈΡ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½ΡΠ²Π°ΠΌ Π΄Π° ΠΈΠ³ΡΠ°Ρ ΠΈΠ³ΡΠΈ Ρ Π±ΠΈΡΠΎΠ²Π΅ ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Unicode ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π±Π΅ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡΡ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ UTF-C ("C" Π·Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½), ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π° Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 3 Π±Π°ΠΉΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π° ΡΠΎΡΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Ρ Π°ΡΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ Π±Π°ΠΉΡ Π·Π° ΡΠ΅Π»ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ ΡΠ΅Π΄. Π’ΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅-ASCII Π°Π·Π±ΡΠΊΠΈ ΡΠ°ΠΊΠΎΠ²Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π° 30-60% ΠΏΠΎ-ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½ ΠΎΡ UTF-8.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π²ΡΠ² ΡΠΎΡΠΌΠ°ΡΠ°
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅ΡΡΠ° ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ UTF-8
ΠΠ· ΡΡΡΠΎ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ
ΠΠ»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ Π±ΠΈΡΠΎΠ²Π΅
ΠΠ·Π΅Ρ
UTF-8 ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅. ΠΡΡΠ²ΠΎΡΠΎ ΠΈ Π½Π°ΠΉ-ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π½Π΅Π³ΠΎ, Π΅ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π±ΡΠΎΡΡ Π½Π° ΡΠ»ΡΠΆΠ΅Π±Π½ΠΈΡΠ΅ Π±ΠΈΡΠΎΠ²Π΅ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ Π±Π°ΠΉΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΡΠ²ΠΈΡΡ Π±Π°ΠΉΡ Π² UTF-8 Π²ΠΈΠ½Π°Π³ΠΈ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΈΠ»ΠΈ 0
, ΠΈΠ»ΠΈ Ρ 11
- ΠΏΡΠ΅ΡΠΈΠΊΡ 10
Π‘Π°ΠΌΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π±Π°ΠΉΡΠΎΠ²Π΅ Π³ΠΎ ΠΈΠΌΠ°Ρ. ΠΠ΅ΠΊΠ° Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° 11
Π½Π° 1
, Π° Π·Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ Π±Π°ΠΉΡΠΎΠ²Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΠΌ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡΠΈΡΠ΅. ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ?
0xxxxxxx
β 1 Π±Π°ΠΉΡ
10xxxxxx xxxxxxxx
- 2 Π±Π°ΠΉΡΠ°
110xxxxx xxxxxxxx xxxxxxxx
- 3 Π±Π°ΠΉΡΠ°
Π§Π°ΠΊΠ°ΠΉ, ΠΊΡΠ΄Π΅ Π΅ ΡΠ΅ΡΠΈΡΠΈΠ±Π°ΠΉΡΠΎΠ²ΠΈΡΡ Π·Π°ΠΏΠΈΡ? ΠΠΎ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ - ΠΏΡΠΈ Π·Π°ΠΏΠΈΡ Π² ΡΡΠΈ Π±Π°ΠΉΡΠ° Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π°Π»ΠΈΡΠ½ΠΈ 21 Π±ΠΈΡΠ° ΠΈ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΈΡΠ»Π° Π΄ΠΎ 0x10FFFF
.
ΠΠ°ΠΊΠ²ΠΎ ΡΠΌΠ΅ ΠΏΠΎΠΆΠ΅ΡΡΠ²Π°Π»ΠΈ ΡΡΠΊ? ΠΠ°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π΅ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ°Π½ΠΈΡΠΈ Π½Π° Π·Π½Π°ΡΠΈ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΠΌΡΡΡΠΎ Π² Π±ΡΡΠ΅ΡΠ°. ΠΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±Π°ΠΉΡ ΠΈ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π·Π½Π°ΠΊ ΠΎΡ Π½Π΅Π³ΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΈΡ ΡΠΎΡΠΌΠ°Ρ, Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΡΠ΄ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· Π±ΡΡΠ΅ΡΠ° ΠΎΡ ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ (ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΠΊΡΡΠΈ Π»ΠΈΠ½ΠΈΠΈ).
Π‘ΠΈΡΡΠ°ΡΠΈΡΡΠ° Ρ ΠΏΠΎΠΊΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π·ΠΈΡΠΈ Ρ 2 Π±Π°ΠΉΡΠ° ΡΡΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ: ΡΠ΅Π³Π° Π΄Π²ΡΠ±Π°ΠΉΡΠΎΠ²ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π²Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 14 Π±ΠΈΡΠ° ΠΈ ΡΠΎΠ²Π° ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π΄ΠΎ 0x3FFF
. ΠΠΈΡΠ°ΠΉΡΠΈΡΠ΅ Π½ΡΠΌΠ°Ρ ΠΊΡΡΠΌΠ΅Ρ (Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΠ΅ ΠΈΠΌ Π²Π°ΡΠΈΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ ΠΎΡ 0x4E00
Π΄ΠΎ 0x9FFF
), Π½ΠΎ Π³ΡΡΠ·ΠΈΠ½ΡΠΈΡΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ Π½Π°ΡΠΎΠ΄ΠΈ ΡΠ΅ Π·Π°Π±Π°Π²Π»ΡΠ²Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ - ΡΠ΅Ρ
Π½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ ΡΡΡΠΎ ΡΠ΅ ΠΏΠΎΠ±ΠΈΡΠ°Ρ Π² 2 Π±Π°ΠΉΡΠ° Π½Π° Π·Π½Π°ΠΊ.
ΠΡΠ²Π΅Π΄Π΅ΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π΅Π½ΠΊΠΎΠ΄Π΅ΡΠ°
ΠΠ΅ΠΊΠ° ΡΠ΅Π³Π° Π΄Π° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΠΌ Π·Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Π½Π° ΡΠ°ΠΌΠΈΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ. Π Π΅ΡΠ½ΠΈΠΊΡΡ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° Π΄ΡΠΌΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Ρ Π±ΡΠΊΠ²ΠΈ ΠΎΡ ΡΡΡΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ°, Π° ΡΠΎΠ²Π° Π²Π°ΠΆΠΈ ΠΈ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅. ΠΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΠΈ Π°Π·Π±ΡΠΊΠ° Π²Π΅Π΄Π½ΡΠΆ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° Π±ΡΠΊΠ²Π°ΡΠ° Π² Π½Π΅Ρ. ΠΠ° Π²ΠΈΠ΄ΠΈΠΌ Π΄Π°Π»ΠΈ ΠΏΠΎΠ΄ΡΠ΅Π΄Π±Π°ΡΠ° Π½Π° Π·Π½Π°ΡΠΈΡΠ΅ Π² Unicode ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΡΠ΅ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅.
ΠΠ°ΠΊΡΠΎ Π±Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅, Unicode Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΡΠ°ΠΌΠΎΠ»Π΅Ρ 65536 ΠΊΠΎΠ΄Π° Π²ΡΠ΅ΠΊΠΈ. ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (ΠΊΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ ΠΊΠ°Π·Π°Ρ ΠΌΠ΅, Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠΌΠ΅ Π² Π½ΡΠ»Π΅Π²Π°ΡΠ° ΡΠ°Π²Π½ΠΈΠ½Π°). ΠΠΎ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ Π±Π»ΠΎΠΊΠΎΠ²Π΅. Π’Π΅Π·ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π²Π΅ΡΠ΅ Π½ΡΠΌΠ°Ρ ΡΠΈΠΊΡΠΈΡΠ°Π½Π° Π΄ΡΠ»ΠΆΠΈΠ½Π° ΠΈ ΡΠ° ΠΏΠΎ-ΡΠΌΠΈΡΠ»Π΅Π½ΠΈ - ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° Π·Π½Π°ΡΠΈ ΠΎΡ Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° Π°Π·Π±ΡΠΊΠ°.
ΠΠ»ΠΎΠΊ, ΡΡΠ΄ΡΡΠΆΠ°Ρ Π·Π½Π°ΡΠΈ ΠΎΡ Π±Π΅Π½Π³Π°Π»ΡΠΊΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ°. ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΡΠΎΠ²Π° Π΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ»ΡΡΠ½Π° ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° - 96 Π·Π½Π°ΠΊΠ° ΡΠ° Ρ
Π°ΠΎΡΠΈΡΠ½ΠΎ ΡΠ°Π·ΠΏΡΡΡΠ½Π°ΡΠΈ Π² 128 Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠΎΡΠΊΠΈ.
ΠΠ°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ° ΠΊΡΠ°ΡΠ½ΠΈ Π½Π° 16 - ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΠΈ Π·Π°Π²ΡΡΡΠ²Π°Ρ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΊΡΠ°ΡΠ½ΠΈ Π½Π° 128 ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ 256 - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΊΠΈΡΠΈΠ»ΠΈΡΠ° Π·Π°Π΅ΠΌΠ° 256 Π±Π°ΠΉΡΠ° ΠΎΡ 0x0400
Π΄ΠΎ 0x04FF
. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΡΠ΄ΠΎΠ±Π½ΠΎ: Π°ΠΊΠΎ Π·Π°ΠΏΠ°Π·ΠΈΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° Π²Π΅Π΄Π½ΡΠΆ 0x04
, ΡΠΎΠ³Π°Π²Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΈΡΠΈΠ»ΡΠΊΠΈ Π·Π½Π°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ Π² Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ. ΠΡΡΠ½ΠΎ Π΅, ΡΠ΅ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠ΅ Π·Π°Π³ΡΠ±ΠΈΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ASCII (ΠΈ ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ Π·Π½Π°ΡΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ). ΠΠ°ΡΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π°:
- ΠΠ²Π° Π±Π°ΠΉΡΠ°
10yyyyyy yxxxxxxx
Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π²Π°Ρ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΡΠΈΡΠ»ΠΎyyyyyy yxxxxxxx
, Π½ΠΎ ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° ΡΠ΅ΠΊΡΡΠ° Π°Π·Π±ΡΠΊΠ° Π½Π°yyyyyy y0000000
(Ρ.Π΅. ΠΏΠΎΠΌΠ½ΠΈΠΌ Π²ΡΠΈΡΠΊΠΈ Π±ΠΈΡΠΎΠ²Π΅ Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΠΉ-ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΈΡΠ΅ 7 Π±ΠΈΡΠ°); - ΠΠ΄ΠΈΠ½ Π±Π°ΠΉΡ
0xxxxxxx
ΡΠΎΠ²Π° Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΡ Π½Π° Π½Π°ΡΡΠΎΡΡΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ°. ΠΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΠΊΡΠΌ ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ ΠΌΠ΅ Π² ΡΡΡΠΏΠΊΠ° 1. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡ ΠΌΠ΅ Π°Π·Π±ΡΠΊΠ°ΡΠ°, ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π΅ Π½ΡΠ»Π°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΌΠ΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ ASCII.
ΠΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈ 3 Π±Π°ΠΉΡΠ°:
- Π’ΡΠΈ Π±Π°ΠΉΡΠ°
110yyyyy yxxxxxxx xxxxxxxx
ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΡΠΈΡΡΠ°yyyyyy yxxxxxxx xxxxxxxx
, ΠΏΡΠΎΠΌΡΠ½Π° ΡΠ΅ΠΊΡΡΠ° Π°Π·Π±ΡΠΊΠ° Π½Π°yyyyyy y0000000 00000000
(ΠΏΠΎΠΌΠ½ΠΈ Π²ΡΠΈΡΠΊΠΎ, ΠΎΡΠ²Π΅Π½ ΠΏΠΎ-ΠΌΠ»Π°Π΄ΠΈΡΠ΅ 15 Π±ΠΈΡΠ°) ΠΈ ΠΏΠΎΡΡΠ°Π²Π΅ΡΠ΅ ΠΎΡΠΌΠ΅ΡΠΊΠ° Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΡΠ΅ΡΠΎ, Π² ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°ΠΌΠ΅ ΡΠ΅Π³Π° Π΄ΡΠ»Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌ (ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ Π°Π·Π±ΡΠΊΠ°ΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° Π΄Π²ΡΠ±Π°ΠΉΡΠΎΠ²Π°, ΡΠ΅ Π½ΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΡΠ»Π°Π³); - ΠΠ²Π° Π±Π°ΠΉΡΠ°
0xxxxxxx xxxxxxxx
Π² Π΄ΡΠ»ΡΠ³ ΡΠ΅ΠΆΠΈΠΌ ΡΠΎΠ²Π° Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΡ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ°. ΠΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Ρ ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΎΡ ΡΡΡΠΏΠΊΠ° 1. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° Π΅, ΡΠ΅ ΡΠ΅Π³Π° ΡΠ΅ΡΠ΅ΠΌ Π΄Π²Π° Π±Π°ΠΉΡΠ° (Π·Π°ΡΠΎΡΠΎ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡ ΠΌΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΡΠ΅ΠΆΠΈΠΌ).
ΠΠ²ΡΡΠΈ Π΄ΠΎΠ±ΡΠ΅: ΡΠ΅Π³Π°, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΠΌΠ΅ Π·Π½Π°ΡΠΈ ΠΎΡ ΡΡΡΠΈΡ 7-Π±ΠΈΡΠΎΠ² Unicode Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°ΠΌΠ΅ 1 Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ Π±Π°ΠΉΡ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ ΠΈ ΠΎΠ±ΡΠΎ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ Π½Π° Π·Π½Π°ΠΊ.
Π Π°Π±ΠΎΡΠΈ ΠΎΡ Π΅Π΄Π½Π° ΠΎΡ ΠΏΠΎ-ΡΠ°Π½Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ. ΠΠ΅ΡΠ΅ ΡΠ΅ΡΡΠΎ Π±ΠΈΠ΅ UTF-8, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° ΠΌΡΡΡΠΎ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ΅ Π΅ ΠΏΠΎ-Π»ΠΎΡΠΎΡΠΎ? ΠΡΡΠ²ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ° ΠΈ ΠΎΡΠΌΠ΅ΡΠΊΠ° Π΄ΡΠ»ΡΠ³ ΡΠ΅ΠΆΠΈΠΌ. Π’ΠΎΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°: ΡΠ΅Π³Π° Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π·Π½Π°ΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΈ. Π’ΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π½ΠΈΠ·ΠΎΠ²Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ, ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΎΠ²Π°, Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° Π±Π°ΠΉΡΠΎΠ²Π΅. ΠΡΠΎΡΠΎ, Π²Π΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡ ΠΌΠ΅ Π°Π·Π±ΡΠΊΠ°ΡΠ°, ΡΡΠ°Π½Π° Π»ΠΎΡΠΎ Ρ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ASCII ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ (ΠΈ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠ°ΠΌΠΎ Π»Π°ΡΠΈΠ½ΡΠΊΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ°, Π½ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ) - ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π°Π·Π±ΡΠΊΠ°ΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ Π½Π° 0, Ρ.Π΅. ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ Π±Π°ΠΉΡ (ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½, Π·Π° Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ Π½Π°ΡΠ°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠΎΡΠΊΠ°).
ΠΠ΄Π½Π° Π°Π·Π±ΡΠΊΠ° Π΅ Π΄ΠΎΠ±ΡΠ°, Π΄Π²Π΅ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅
ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΡΠΈΡΠ΅ Π±ΠΈΡΠΎΠ²ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠΈ, ΠΊΠ°ΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΊΡΠΌ ΡΡΠΈΡΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅:
0xxxxxxx
β 1 Π±Π°ΠΉΡ Π² Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ, 2 Π² Π΄ΡΠ»ΡΠ³ ΡΠ΅ΠΆΠΈΠΌ
11xxxxxx
β 1 Π±Π°ΠΉΡ
100xxxxx xxxxxxxx
- 2 Π±Π°ΠΉΡΠ°
101xxxxx xxxxxxxx xxxxxxxx
- 3 Π±Π°ΠΉΡΠ°
Π‘Π΅Π³Π° Π² Π΄Π²ΡΠ±Π°ΠΉΡΠΎΠ² Π·Π°ΠΏΠΈΡ ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ Π½Π°Π»ΠΈΡΠ΅Π½ Π±ΠΈΡ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ - ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠΎΡΠΊΠΈ Π΄ΠΎ 0x1FFF
Π Π½Π΅ 0x3FFF
. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΠΎΠΉ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π² Π΄Π²ΡΠ±Π°ΠΉΡΠΎΠ²ΠΈΡΠ΅ UTF-8 ΠΊΠΎΠ΄ΠΎΠ²Π΅, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈ Π΅Π·ΠΈΡΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ Π²ΠΏΠΈΡΠ²Π°Ρ, Π½Π°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ°ΡΠ° Π·Π°Π³ΡΠ±Π° Π΅ ΠΎΡΠΏΠ°Π΄Π½Π°Π»Π°
ΠΠ°ΠΊΡΠ² Π΅ ΡΠΎΠ·ΠΈ Π½ΠΎΠ² ΠΊΠΎΠ΄? 11xxxxxx
? Π’ΠΎΠ²Π° Π΅ ΠΌΠ°Π»ΠΊΠΎ βΡΠΊΡΠΈΠ²Π°Π»ΠΈΡΠ΅β Ρ ΡΠ°Π·ΠΌΠ΅Ρ 64 Π·Π½Π°ΠΊΠ°, Π΄ΠΎΠΏΡΠ»Π²Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π½ΠΈ Π°Π·Π±ΡΠΊΠ°, Π·Π°ΡΠΎΠ²Π° Π³ΠΎ Π½Π°ΡΠ΅ΠΊΠΎΡ
ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π½Π° (ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π΅Π½) Π°Π·Π±ΡΠΊΠ°. ΠΠΎΠ³Π°ΡΠΎ ΡΠΌΠ΅Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ°, ΡΠ°ΡΡ ΠΎΡ ΡΡΠ°ΡΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ° ΡΡΠ°Π²Π° ΠΏΠΎΠΌΠΎΡΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ
ΠΌΠ΅ ΠΎΡ ASCII ΠΊΡΠΌ ΠΊΠΈΡΠΈΠ»ΠΈΡΠ° - ΡΠΊΡΠΈΠ²Π°Π»ΠΈΡΠ΅ΡΠΎ Π²Π΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° 64 Π·Π½Π°ΠΊΠ°, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΠ°ΡΠΈΠ½ΡΠΊΠ° Π°Π·Π±ΡΠΊΠ°, ΡΠΈΡΡΠΈ, ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΈ Π·Π°ΠΏΠ΅ΡΠ°Ρ (Π½Π°ΠΉ-ΡΠ΅ΡΡΠΈ Π²ΠΌΡΠΊΠ²Π°Π½ΠΈΡ Π² Π½Π΅-ASCII ΡΠ΅ΠΊΡΡΠΎΠ²Π΅). ΠΡΠ΅Π²ΠΊΠ»ΡΡΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ ASCII - ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΊΠΈΡΠΈΠ»ΠΈΡΠ°ΡΠ° ΡΠ΅ ΡΡΠ°Π½Π΅ ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π½Π° Π°Π·Π±ΡΠΊΠ°.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ Π΄Π²Π΅ Π°Π·Π±ΡΠΊΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π°Π·Π±ΡΠΊΠΈ (ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΡΡΠ° Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π²ΡΡΡΠ°Π½Π΅ ΠΊΡΠΌ ASCII, Π½ΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅-ASCII Π·Π½Π°ΡΠΈ ΠΎΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π°ΡΠ° Π°Π·Π±ΡΠΊΠ°, Π±Π΅Π· ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΎΡΠ½ΠΎΠ²ΠΎ).
ΠΠΎΠ½ΡΡ: ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠ΅ΡΠΈΠΊΡ Π½Π° ΠΏΠΎΠ΄-Π°Π·Π±ΡΠΊΠ°ΡΠ° 11xxxxxx
ΠΈ ΠΈΠ·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎΡΠΎ ΠΌΡ ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ 0xC0
, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ°ΡΡΠΈΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ CP1252. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, ΠΌΠ½ΠΎΠ³ΠΎ (Π½ΠΎ Π½Π΅ Π²ΡΠΈΡΠΊΠΈ) Π·Π°ΠΏΠ°Π΄Π½ΠΎΠ΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅, ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ Π² CP1252, ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ Π² UTF-C.
Π’ΡΠΊ ΠΎΠ±Π°ΡΠ΅ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΡΡΡΠ΄Π½ΠΎΡΡ: ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π½Π° ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π°Π·Π±ΡΠΊΠ°? ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΡΡΠΎΡΠΎ ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅, Π½ΠΎ - ΡΠ²ΠΈ - ΡΡΠΊ Unicode ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π²Π΅ΡΠ΅ ΠΈΠ³ΡΠ°Π΅ ΡΡΠ΅ΡΡ Π½Π°Ρ. ΠΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π°Π·Π±ΡΠΊΠ°ΡΠ° Π½Π΅ Π΅ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π±Π»ΠΎΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΠΊΠ°ΡΠ° Π³Π»Π°Π²Π½Π° βΠβ ΠΈΠΌΠ° ΠΊΠΎΠ΄Π° 0x0410
, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΊΠΈΡΠΈΠ»ΡΠΊΠΈΡΡ Π±Π»ΠΎΠΊ Π·Π°ΠΏΠΎΡΠ²Π° Ρ 0x0400
). ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠΌΠ΅ Π²Π·Π΅Π»ΠΈ ΠΏΡΡΠ²ΠΈΡΠ΅ 64 Π·Π½Π°ΠΊΠ° Π² ΡΠΊΡΠΈΠ²Π°Π»ΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡΠ±ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° Π°Π·Π±ΡΠΊΠ°ΡΠ°.
ΠΠ° Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΠΌ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΡΡΠ½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΏΡΠ΅Π· Π½ΡΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ, ΠΈ ΠΏΠΎΡΠΎΡΠΈΡ ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠΎΠΌΠ°Π³Π°ΡΠ΅Π»Π½Π°ΡΠ° Π°Π·Π±ΡΠΊΠ° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π·Π° ΡΡΡ . ΠΠ°ΡΠΈΠ½ΡΠΊΠ°ΡΠ° Π°Π·Π±ΡΠΊΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π½Π°ΡΠ΅Π΄Π΅Π½Π° ΠΊΠ°ΡΠΎ base64.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈ ΡΡΠΈΡ ΠΈ
ΠΠ΅ΠΊΠ° Π½Π°ΠΉ-Π½Π°ΠΊΡΠ°Ρ Π΄Π° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΠΌ ΠΊΡΠ΄Π΅ Π΄ΡΡΠ³Π°Π΄Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠΌ Π½Π΅ΡΠΎ.
ΠΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡΡ 101xxxxx xxxxxxxx xxxxxxxx
Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΡΠΈΡΠ»Π° Π΄ΠΎ 0x1FFFFF
, Π° Unicode Π·Π°Π²ΡΡΡΠ²Π° ΠΏΠΎ-ΡΠ°Π½ΠΎ, Π½Π° 0x10FFFF
. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° ΡΠΎΡΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½Π° ΠΊΠ°ΡΠΎ 10110000 11111111 11111111
. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ Π°ΠΊΠΎ ΠΏΡΡΠ²ΠΈΡΡ Π±Π°ΠΉΡ Π΅ ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° 1011xxxx
(ΠΡΠ΄Π΅ΡΠΎ xxxx
ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ ΠΎΡ 0), ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΎΡΠ΅ 15 Π·Π½Π°ΠΊΠ° ΡΠ°ΠΌ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π² Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ, Π½ΠΎ ΡΠ΅ΡΠΈΡ
Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Ρ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½.
ΠΠ΅ΠΊΠ° ΡΠ΅Π³Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠ½Π΅Π·ΠΈ Unicode Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΡΠΈ Π±Π°ΠΉΡΠ°. ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΠΊΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ
ΠΌΠ΅, ΡΠΎΠ²Π° ΡΠ° ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈ ΠΉΠ΅ΡΠΎΠ³Π»ΠΈΡΠΈ - Π½ΠΎ Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ Ρ ΡΡΡ
, ΠΈΠΌΠ° 21 Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΠΎΡ ΡΡΡ
. ΠΠΎ Ρ
ΠΈΡΠ°Π³Π°Π½Π° ΠΈ ΠΊΠ°ΡΠ°ΠΊΠ°Π½Π° ΡΡΡΠΎ Π»Π΅ΡΡΡ
Π° ΡΠ°ΠΌ - ΠΈ Π²Π΅ΡΠ΅ Π½ΡΠΌΠ° ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΡΡ
, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ Π΄Π²Π΅ΡΡΠ°. Π ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΈ ΡΠΏΠΎΠΌΠ½ΠΈΡ
ΠΌΠ΅ ΡΠΏΠΎΠ½ΡΠΈΡΠ΅, ΠΈΠΌΠ° ΠΈ Π΅ΠΌΠΎΡΠΈΠΊΠΎΠ½ΠΈ (Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ ΡΠ° ΡΠ°Π·ΠΏΡΡΡΠ½Π°ΡΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π² Unicode, Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΠ° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 0x1F300
- 0x1FBFF
). ΠΠΊΠΎ ΡΠ΅ Π·Π°ΠΌΠΈΡΠ»ΠΈΡΠ΅ Π²ΡΡΡ
Ρ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠ΅Π³Π° ΠΈΠΌΠ° Π΅ΠΌΠΎΡΠΈΠΊΠΎΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Ρ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠΎΡΠΊΠΈ Π½Π°Π²Π΅Π΄Π½ΡΠΆ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΠΌΠΎΡΠΈΠΊΠΎΠ½ΠΈ βββ
ΠΠ°ΡΠΎΠ²Π° ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ·Π±ΡΠ°Π½ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ Π½Π° Π΅ΠΌΠΎΠ΄ΠΆΠΈ, Ρ ΠΈΡΠ°Π³Π°Π½Π° ΠΈ ΠΊΠ°ΡΠ°ΠΊΠ°Π½Π°, ΠΏΡΠ΅Π½ΠΎΠΌΠ΅ΡΠΈΡΠ°ΠΌΠ΅ Π³ΠΈ Π² Π΅Π΄ΠΈΠ½ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ ΡΠΏΠΈΡΡΠΊ ΠΈ Π³ΠΈ ΠΊΠΎΠ΄ΠΈΡΠ°ΠΌΠ΅ ΠΊΠ°ΡΠΎ Π΄Π²Π° Π±Π°ΠΉΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΈ:
1011xxxx xxxxxxxx
Π‘ΡΡΠ°Ρ
ΠΎΡΠ½ΠΎ: Π³ΠΎΡΠ΅ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡΠ΅ Π΅ΠΌΠΎΡΠΈΠΊΠΎΠ½ΠΈ
ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ°ΠΊΡΠΎ ΡΠΈ ΡΠΏΠΎΠΌΠ½ΡΠΌΠ΅, ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π°Π·Π±ΡΠΊΠ° Π΅ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π²ΠΈΡΠΎΠΊΠΈ 6 Π±ΠΈΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΈ Π·Π°Π»Π΅ΠΏΠ²Π°ΠΌΠ΅ ΠΊΡΠΌ ΠΊΠΎΠ΄Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ»Π΅Π΄Π²Π°Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½ ΡΠΈΠΌΠ²ΠΎΠ». Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈ ΠΉΠ΅ΡΠΎΠ³Π»ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π² Π±Π»ΠΎΠΊΠ° 0x4E00
- 0x9FFF
, ΡΠΎΠ²Π° Π΅ ΠΈΠ»ΠΈ Π±ΠΈΡ 0, ΠΈΠ»ΠΈ 1. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ: ΡΠ΅ ΡΡΡΠ±Π²Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ Π°Π·Π±ΡΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π·ΠΈ Π΄Π²Π΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (Ρ.Π΅. Π΄Π° ΠΈΠ·ΡΠ°Π·Ρ
ΠΎΠ΄Π²Π°ΠΌΠ΅ ΡΡΠΈ Π±Π°ΠΉΡΠ°). ΠΠΎ ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Π² Π΄ΡΠ»Π³ΠΈΡ ΡΠ΅ΠΆΠΈΠΌ, ΠΎΡ ΡΠ°ΠΌΠΈΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π²Π°Π΄ΠΈΠΌ Π±ΡΠΎΡ Π·Π½Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°ΠΌΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΡΠ°ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌ (ΡΠ»Π΅Π΄ Π²ΡΠΈΡΠΊΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΠΎΠ²Π° Π΅ 10240) - ΡΠΎΠ³Π°Π²Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΡΡ ΠΎΡ ΠΉΠ΅ΡΠΎΠ³Π»ΠΈΡΠΈ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΠΈ ΠΊΡΠΌ 0x2600
- 0x77FF
ΠΈ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ, Π² ΡΠ΅Π»ΠΈΡ ΡΠΎΠ·ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π½Π°ΠΉ-Π·Π½Π°ΡΠΈΠΌΠΈΡΠ΅ 6 Π±ΠΈΡΠ° (ΠΎΡ 21) ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ°Π²Π½ΠΈ Π½Π° 0. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈΡΠ΅ ΠΎΡ ΠΉΠ΅ΡΠΎΠ³Π»ΠΈΡΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄Π²Π° Π±Π°ΠΉΡΠ° Π½Π° ΠΉΠ΅ΡΠΎΠ³Π»ΠΈΡ (ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π·Π° ΡΠ°ΠΊΡΠ² Π³ΠΎΠ»ΡΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½), Π±Π΅Π· ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π°ΠΉΠΊΠΈ ΡΠΌΡΠ½Π° Π½Π° Π°Π·Π±ΡΠΊΠ°ΡΠ°.
ΠΠ»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ: SCSU, BOCU-1
ΠΠΊΡΠΏΠ΅ΡΡΠΈΡΠ΅ ΠΏΠΎ Unicode, ΡΠΎΠΊΡ-ΡΠΎ ΠΏΡΠΎΡΠ΅Π»ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°, Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ ΠΏΠΎΠ±ΡΡΠ·Π°Ρ Π΄Π° Π²ΠΈ Π½Π°ΠΏΠΎΠΌΠ½ΡΡ, ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠ΅Π΄ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ Π½Π° Unicode ΠΈΠΌΠ°
ΠΡΠΈΠ·Π½Π°Π²Π°ΠΌ ΡΠ΅ΡΡΠ½ΠΎ: Π½Π°ΡΡΠΈΡ Π·Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ Π΅Π΄Π²Π° ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π±ΡΡ Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΠΏΠΎΡΠΎΠΏΠ΅Π½ Π² ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ. ΠΠΊΠΎ Π·Π½Π°Π΅Ρ Π·Π° ΡΠΎΠ²Π° ΠΎΡ ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΡΡ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌ Π΄Π° Π½Π°ΠΏΠΈΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·ΠΌΠΈΡΠ»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ SCSU ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ΄Π΅ΠΈ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΡ ΡΠ°ΠΌ (Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° βΠ°Π·Π±ΡΠΊΠΈβ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ βΠΏΡΠΎΠ·ΠΎΡΡΠΈβ ΠΈ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΡΡ , ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠΌΠ°ΠΌ). Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΡΠΎΡΠΌΠ°Ρ ΠΈΠΌΠ° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ: ΡΠΎΠΉ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π±Π»ΠΈΠ·ΡΠΊ Π΄ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄ΠΎ ΡΠ΅Π·ΠΈ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΡΡΠ°Π½Π΄Π°ΡΡΡΡ Π΄Π°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅, Π½ΠΎ Π½Π΅ ΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΈΡ - Π·Π° ΡΠΎΠ²Π° Π΅Π½ΠΊΠΎΠ΄Π΅ΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ Π΅Π²ΡΠΈΡΡΠΈΠΊΠ°. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ SCSU Π΅Π½ΠΊΠΎΠ΄Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π΄ΠΎΠ±ΡΠ° ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ΅Π½ ΠΈ ΠΏΠΎ-ΡΡΠΎΠΌΠ°Π² ΠΎΡ ΠΌΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ.
ΠΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° SCSU ΠΊΡΠΌ JavaScript - ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΌΠ° Π½Π° ΠΊΠΎΠ΄Π° ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΡΡΠ°Π²Π½ΠΈΠΌΠ° Ρ ΠΌΠΎΡ UTF-C, Π½ΠΎ Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ Π±Π΅ΡΠ΅ Ρ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ° ΠΏΠΎ-Π»ΠΎΡ (ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ Π½Π°Π΄Π²ΠΈΡΠ°Π²Π°, Π½ΠΎ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅ Π½Π° ΠΈΠ²ΡΠΈΡ ΠΈ Π³ΡΡΡΠΊΠΈ Π±ΡΡ Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ Ρ UTF-C 60% ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΎΡ SCSU (Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΈΡΠ΅ ΠΈΠΌ Π°Π·Π±ΡΠΊΠΈ).
ΠΡΠ΄Π΅Π»Π½ΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ, ΡΠ΅ ΠΎΡΠ²Π΅Π½ SCSU ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ Π·Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Unicode -
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡ , Π½Π΅ Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½ (ΡΡΠΊ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΌΠΎΠΈΡΠ΅ ΡΠ΅Π»ΠΈ ΡΠ΅ ΡΠ°Π·ΠΌΠΈΠ½Π°Π²Π°Ρ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Unicode Consortium). ΠΠ΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ , ΡΠ΅ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π·Π° Π΅Π΄Π½Π° Π·Π°Π΄Π°ΡΠ° (ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ΅Π·ΠΈΡΠ΅Π½ ΡΠ΅ΡΠ½ΠΈΠΊ Π² ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎ Π΄ΡΡΠ²ΠΎ) ΠΈ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎ ΡΠ°ΠΊΡΡΡ, ΡΠ΅ Π½Π΅ Π΅ ΡΡΠ°Π½Π΄Π°ΡΡ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΠ»ΡΡ - ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, Π·Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π²Π°ΡΠΈΡΠ΅ Π½ΡΠΆΠ΄ΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΡΡΠ²Π΅ΡΠ΅ ΠΎΡ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π±Π΅Π· ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ - ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ offs
, auxOffs
ΠΈ is21Bit
Π² Π΅Π½ΠΊΠΎΠ΄Π΅ΡΠ° ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ°. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π½ΡΠΌΠ° Π΄Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΡΠ΅ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠΈ ΠΎΡ Π·Π½Π°ΡΠΈ ΠΎΡ Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° Π°Π·Π±ΡΠΊΠ°, Π½ΠΎ ΡΠ΅ ΠΈΠΌΠ° Π³Π°ΡΠ°Π½ΡΠΈΡ, ΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Π·Π½Π°ΠΊ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ Ρ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π±Π°ΠΉΡΠΎΠ²Π΅, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡΠ΅ Π΅Π½ΠΊΠΎΠ΄Π΅ΡΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ Π΅Π·ΠΈΠΊ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΡΠ΅ Π²ΡΡΡ
Ρ ΡΡΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅, Π·Π°Π΄Π°ΠΉΡΠ΅ Π΅Π½ΠΊΠΎΠ΄Π΅ΡΠ° ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ° Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ offs = 0x0400
ΠΈ auxOffs = 0
. Π’ΠΎΠ²Π° ΠΈΠΌΠ° ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠΌΠΈΡΡΠ» Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΠ΅ΠΆΠΈΠΌ Π±Π΅Π· ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΎΡΠΎ ΠΎΡΠ΅ΠΌΠ±ΠΈΡΠΎΠ²ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, Π½ΠΎ Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²ΠΌΡΠΊΠ²Π°Π½Π΅ Π½Π° Π·Π½Π°ΡΠΈ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Unicode, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΡΡΠ³ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ, ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΏΠΎ-ΡΠ°Π½ΠΎ, Π΅, ΡΠ΅ Π² Π³ΠΎΠ»ΡΠΌ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΠ΄ΠΈΡΠ°Π½ Π² UTF-C, Π½ΡΠΌΠ° Π±ΡΡΠ· Π½Π°ΡΠΈΠ½ Π·Π° Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° Π·Π½Π°ΠΊΠ°, ΠΊΠΎΡΡΠΎ Π΅ Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±Π°ΠΉΡ. ΠΠΊΠΎ ΠΎΡΡΠ΅ΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅, Π΄Π° ΡΠ΅ΡΠ΅ΠΌ, 100 Π±Π°ΠΉΡΠ° ΠΎΡ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈΡ Π±ΡΡΠ΅Ρ, ΡΠΈΡΠΊΡΠ²Π°ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π±ΠΎΠΊΠ»ΡΠΊ, Ρ ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½ΠΈΡΠΎ. ΠΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π΅ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π·Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΈΠ³Π°Π±Π°ΠΉΡΠΎΠ²ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½ΠΎ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΎ. ΠΠ°ΠΉΡ 0xBF
Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° ΠΊΠ°ΡΠΎ ΠΏΡΡΠ²ΠΈ Π±Π°ΠΉΡ (Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²ΡΠΎΡΠΈ ΠΈΠ»ΠΈ ΡΡΠ΅ΡΠΈ). Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΌΡΠΊΠ½Π΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° 0xBF 0xBF 0xBF
Π²ΡΠ΅ΠΊΠΈ, Π΄Π° ΡΠ΅ΡΠ΅ΠΌ, 10 KB - ΡΠΎΠ³Π°Π²Π°, Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π³ΡΠ°Π½ΠΈΡΠ°, ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΡΠΊΠ°Π½ΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½ΠΎΡΠΎ ΠΏΠ°ΡΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΌΠ°ΡΠΊΠ΅Ρ. Π‘Π»Π΅Π΄ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ 0xBF
Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΎ Π΅ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π³Π΅ΡΠΎΠΉ. (ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°, ΡΠ°Π·ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ ΡΡΠΈ Π±Π°ΠΉΡΠ°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°.)
Π Π΅Π·ΡΠΌΠΈΡΠ°Π½Π΅
ΠΠΊΠΎ ΡΡΠ΅ ΠΏΡΠΎΡΠ΅Π»ΠΈ Π΄ΠΎΡΡΠΊ, ΠΏΠΎΠ·Π΄ΡΠ°Π²Π»Π΅Π½ΠΈΡ! ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ ΠΈ Π²ΠΈΠ΅ ΠΊΠ°ΡΠΎ ΠΌΠ΅Π½ ΡΡΠ΅ Π½Π°ΡΡΠΈΠ»ΠΈ Π½Π΅ΡΠΎ Π½ΠΎΠ²ΠΎ (ΠΈΠ»ΠΈ ΡΡΠ΅ ΠΎΡΠ²Π΅ΠΆΠΈΠ»ΠΈ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈ) Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Unicode.
ΠΠ΅ΠΌΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°. ΠΡΠΈΠΌΠ΅ΡΡΡ Π½Π° ΠΈΠ²ΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠ΅Π΄ UTF-8, ΡΠ°ΠΊΠ° ΠΈ ΠΏΡΠ΅Π΄ SCSU.
ΠΠΎΡΠ΅ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½ΠΈΡ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° ΠΏΠΎΡΠ΅Π³Π°ΡΠ΅Π»ΡΡΠ²ΠΎ Π²ΡΡΡ
Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΎΠ±Π°ΡΠ΅ ΡΡΠΌ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΌΠΎΡΡΠ° ΡΠ°Π±ΠΎΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠΌ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΠΎΡ ΡΡΡ
Π Π½Π°ΠΊΡΠ°Ρ, ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠ½Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»ΡΡΠ°ΠΈΡΠ΅, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° UTF-C Π½Π΅ ΡΠΈ ΡΡΡΡΠ²Π°:
- ΠΠΊΠΎ Π²Π°ΡΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄ΡΠ»Π³ΠΈ (ΠΎΡ 100-200 Π·Π½Π°ΠΊΠ°). Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΊΠ°ΡΠΎ deflate.
- ΠΠΊΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅Ρ ASCII ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡ, ΡΠΎΠ΅ΡΡ Π·Π° Π²Π°Ρ Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ Π΄Π° Π½Π΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ ASCII ΠΊΠΎΠ΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π±ΠΈΠ»ΠΈ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ Π½ΠΈΠ·. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π±Π΅Π³Π½Π°ΡΠ°, Π°ΠΊΠΎ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ API Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ) ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π±Π°ΠΉΡΠΎΠ²Π΅, Π° Π½Π΅ ΠΊΠ°ΡΠΎ Π½ΠΈΠ·ΠΎΠ²Π΅. Π ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠΈΡΠΊΡΠ²Π°ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
- ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΠ·ΠΎ Π΄Π° Π½Π°ΠΌΠΈΡΠ°ΡΠ΅ Π³ΡΠ°Π½ΠΈΡΠΈ Π½Π° Π·Π½Π°ΡΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΡΠ΅Π΄ Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½Π°). Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅, Π½ΠΎ ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π΄Π° ΠΎΡ Π½Π°ΡΠ°Π»ΠΎΡΠΎ (ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ°, ΠΎΠΏΠΈΡΠ°Π½Π° Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»).
- ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π±ΡΡΠ·ΠΎ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΡ Ρ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ (ΡΠΎΡΡΠΈΡΠ°ΠΉΡΠ΅ Π³ΠΈ, ΡΡΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠ·ΠΎΠ²Π΅ Π² ΡΡΡ , ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΠΈΡΠ°ΠΉΡΠ΅). Π’ΠΎΠ²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΡΠ²ΠΎ Π΄Π° ΡΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Ρ Π½ΠΈΠ·ΠΎΠ²Π΅, ΡΠ°ΠΊΠ° ΡΠ΅ UTF-C ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-Π±Π°Π²Π΅Π½ ΠΎΡ UTF-8 Π² ΡΠ΅Π·ΠΈ ΡΠ»ΡΡΠ°ΠΈ (Π½ΠΎ ΠΏΠΎ-Π±ΡΡΠ· ΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅). Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Π½ΠΈΠ· Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Π½Π°ΡΠΈΠ½, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡΠ½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π° Π±Π°Π·Π° Π±Π°ΠΉΡ ΠΏΠΎ Π±Π°ΠΉΡ.
Update: ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com