рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ

рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ

рдЬрд░ рддреБрдореНрд╣реА рд╡рд┐рдХрд╕рдХ рдЕрд╕рд╛рд▓ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреЗ рдХрд╛рдо рдпреЗрдд рдЕрд╕реЗрд▓, рддрд░ рдпреБрдирд┐рдХреЛрдб рд╣рд╛ рдиреЗрд╣рдореАрдЪ рдпреЛрдЧреНрдп рдЙрдкрд╛рдп рдЕрд╕реЗрд▓. рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкрджреНрдзрдд рд╕рдВрджрд░реНрднрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ, рдкрд░рдВрддреБ рдмрд╣реБрддреЗрдХрджрд╛ рдпреЗрдереЗ рдПрдХ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдЙрддреНрддрд░ рджреЗрдЦреАрд▓ рдЕрд╕рддреЗ - UTF-8. рдпрд╛рдд рдЪрд╛рдВрдЧрд▓реА рдЧреЛрд╖реНрдЯ рдЕрд╢реА рдЖрд╣реЗ рдХреА рддреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЦрд░реНрдЪ рди рдХрд░рддрд╛ рд╕рд░реНрд╡ рдпреБрдирд┐рдХреЛрдб рд╡рд░реНрдг рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЦреВрдк рдмрд╣реБрддреЗрдХ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдмрд░реЗрдЪ рдмрд╛рдЗрдЯреНрд╕. рдЦрд░реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛ рднрд╛рд╖рд╛ рдлрдХреНрдд рд▓реЕрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡рд╛рдкрд░рддрд╛рдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА, "рдЬрд╛рд╕реНрдд рдирд╛рд╣реА" рдХрд┐рдорд╛рди рдкреНрд░рддрд┐ рд╡рд░реНрдг рджреЛрди рдмрд╛рдЗрдЯ. рдкреНрд░рд╛рдЧреИрддрд┐рд╣рд╛рд╕рд┐рдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧрдХрдбреЗ рдкрд░рдд рди рдЬрд╛рддрд╛ рдЖрдореНрд╣реА рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реЗ рдХрд░реВ рд╢рдХрддреЛ рдЬреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд 256 рдЙрдкрд▓рдмреНрдз рд╡рд░реНрдгрд╛рдВрдкрд░реНрдпрдВрдд рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рддреЗ?

рдЦрд╛рд▓реА рдореА рдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЪреЗ рдЙрддреНрддрд░ рджреЗрдгреНрдпрд╛рдЪрд╛ рдЖрдгрд┐ рддреБрд▓рдиреЗрдиреЗ рд╕реЛрдкрд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгреНрдпрд╛рдЪреНрдпрд╛ рдорд╛рдЭреНрдпрд╛ рдкреНрд░рдпрддреНрдирд╛рд╢реА рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрддреЛ рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ UTF-8 рдордзреАрд▓ рд░рд┐рдбрдВрдбрдВрд╕реА рди рдЬреЛрдбрддрд╛ рдЬрдЧрд╛рддреАрд▓ рдмрд╣реБрддреЗрдХ рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдУрд│реА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░реВ рджреЗрддреЛ.

рдЕрд╕реНрд╡реАрдХрд░рдг. рдореА рддрд╛рдмрдбрддреЛрдм рдХрд╛рд╣реА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЖрд░рдХреНрд╖рдгреЗ рдХрд░реЗрди: рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реЗ рд╕рдорд╛рдзрд╛рди UTF-8 рд╕рд╛рдареА рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдмрджрд▓ рдореНрд╣рдгреВрди рджрд┐рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА, рд╣реЗ рдХреЗрд╡рд│ рдкреНрд░рдХрд░рдгрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдХреБрдЪрд┐рдд рд╕реВрдЪреАрдордзреНрдпреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ (рдЦрд╛рд▓реАрд▓ рддреНрдпрд╛рд╡рд░реАрд▓ рдЕрдзрд┐рдХ), рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рддреЗ рддреГрддреАрдп-рдкрдХреНрд╖ API (рдЬреНрдпрд╛рдВрдирд╛ рдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА) рд╕рд╣ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рдирдпреЗ. рдмрд░реНтАНрдпрд╛рдЪрджрд╛, рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбрд┐рдлреНрд▓реЗрдЯ) рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдордЬрдХреВрд░ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрдЪрдпрдирд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЕрд╕рддрд╛рдд. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдорд╛рдЭреЗ рд╕реЛрд▓реНрдпреВрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд, рдорд▓рд╛ рдпреБрдирд┐рдХреЛрдбрдордзреНрдпреЗрдЪ рдПрдХ рд╡рд┐рджреНрдпрдорд╛рди рдорд╛рдирдХ рд╕рд╛рдкрдбрд▓рд╛, рдЬреЛ рд╕рдорд╛рди рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЛ - рд╣реЗ рдХрд╛рд╣реАрд╕реЗ рдЕрдзрд┐рдХ рдХреНрд▓рд┐рд╖реНрдЯ (рдЖрдгрд┐ рдмрд░реЗрдЪрджрд╛ рд╡рд╛рдИрдЯ) рдЖрд╣реЗ, рдкрд░рдВрддреБ рддрд░реАрд╣реА рддреЗ рд╕реНрд╡реАрдХрд╛рд░рд▓реЗрд▓реЗ рдорд╛рдирдХ рдЖрд╣реЗ, рдЖрдгрд┐ рдлрдХреНрдд рдареЗрд╡рд▓реЗ рдирд╛рд╣реА. рдЧреБрдбрдШреНрдпрд╛рд╡рд░ рдПрдХрддреНрд░. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛рдмрджреНрджрд▓рд╣реА рд╕рд╛рдВрдЧреЗрди.

рдпреБрдирд┐рдХреЛрдб рдЖрдгрд┐ UTF-8 рдмрджреНрджрд▓

рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рддреЗ рдХрд╛рдп рдЖрд╣реЗ рдпрд╛рдмрджреНрджрд▓ рдХрд╛рд╣реА рд╢рдмреНрдж рдпреБрдирд┐рдХреЛрдб ╨╕ рдпреВрдЯреАрдПрдл-рдПрдХреНрд╕NUMрдПрдХреНрд╕.

рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ рдХреА, 8-рдмрд┐рдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛрддреЗ. рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╣, рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕реЛрдкреЗ рд╣реЛрддреЗ: 256 рддреЗ 0 рдкрд░реНрдпрдВрддрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╕рд╣ 255 рд╡рд░реНрдгрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ 0 рддреЗ 255 рдкрд░реНрдпрдВрддрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдПрдХ рдмрд╛рдЗрдЯ рдореНрд╣рдгреВрди рджрд░реНрд╢рд╡рд┐рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдЬрд░ рдЖрдкрдг рдЕрдЧрджреА рд╕реБрд░реБрд╡рд╛рддреАрд╕ рдкрд░рдд рдЧреЗрд▓реЛ рддрд░, ASCII рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреВрд░реНрдгрдкрдгреЗ 7 рдмрд┐рдЯреНрд╕рдкрд░реНрдпрдВрдд рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд╛рддреАрд▓ рд╕рд░реНрд╡рд╛рдд рд▓рдХреНрд╖рдгреАрдп рдмрд┐рдЯ рд╢реВрдиреНрдп рдЖрд╣реЗ рдЖрдгрд┐ рдмрд╣реБрддреЗрдХ 8-рдмрд┐рдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗрдд (рддреЗ рдлрдХреНрдд "рд╡рд░рдЪреНрдпрд╛" рдордзреНрдпреЗ рднрд┐рдиреНрди рдЖрд╣реЗрдд. рднрд╛рдЧ, рдЬрд┐рдереЗ рд╕рд░реНрд╡рд╛рдд рд▓рдХреНрд╖рдгреАрдп рдмрд┐рдЯ рдПрдХ рдЖрд╣реЗ).

рдпреБрдирд┐рдХреЛрдб рддреНрдпрд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реЗ рдХрд╕реЗ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдЕрдиреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЖрд╣реЗрдд - UTF-8, UTF-16 (BE рдЖрдгрд┐ LE), UTF-32? рдЪрд▓рд╛ рдХреНрд░рдорд╛рдиреЗ рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡реВ.

рдореВрд▓рднреВрдд рдпреБрдирд┐рдХреЛрдб рдорд╛рдирдХ рдХреЗрд╡рд│ рд╡рд░реНрдг (рдЖрдгрд┐ рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рд╡рд░реНрдгрд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХ рдШрдЯрдХ) рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рдкрддреНрд░рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рддреЗ. рдЖрдгрд┐ рдпрд╛ рдорд╛рдирдХрд╛рдордзреНрдпреЗ рдмрд░реЗрдЪ рд╕рдВрднрд╛рд╡реНрдп рд╕рдВрдЦреНрдпрд╛ рдЖрд╣реЗрдд - рдкрд╛рд╕реВрди 0x00 рддреЗ 0x10FFFF (1 рддреБрдХрдбреЗ). рдЬрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╢рд╛ рд╢реНрд░реЗрдгреАрддреАрд▓ рд╕рдВрдЦреНрдпрд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдареЗрд╡рд╛рдпрдЪреА рдЕрд╕реЗрд▓ рддрд░ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА 114 рдХрд┐рдВрд╡рд╛ 112 рдмрд╛рдЗрдЯреНрд╕ рдкреБрд░реЗрд╕реЗ рдирд╛рд╣реАрдд. рдЖрдгрд┐ рдЖрдордЪреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рддреАрди-рдмрд╛рдЗрдЯ рдирдВрдмрд░рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рд░рд╕реЗ рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддрд┐ рд╡рд░реНрдг 1 рдмрд╛рдЗрдЯреНрд╕ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╕рдХреНрддреА рдХреЗрд▓реА рдЬрд╛рдИрд▓! рд╣реЗ UTF-2 рдЖрд╣реЗ, рдкрд░рдВрддреБ рдпрд╛ "рдлрд╛рд▓рддреВрдкрдгрд╛" рдореБрд│реЗ рд╣реЗ рд╕реНрд╡рд░реВрдк рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╛рд╣реА.

рд╕реБрджреИрд╡рд╛рдиреЗ, рдпреБрдирд┐рдХреЛрдбрдордзреАрд▓ рд╡рд░реНрдгрд╛рдВрдЪрд╛ рдХреНрд░рдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╛рд╣реА. рддреНрдпрд╛рдВрдЪрд╛ рд╕рдВрдкреВрд░реНрдг рд╕рдВрдЪ 17 рдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓реЗрд▓рд╛ рдЖрд╣реЗ "рд╡рд┐рдорд╛рдиреЗ", рддреНрдпрд╛рддреАрд▓ рдкреНрд░рддреНрдпреЗрдХрд╛рдордзреНрдпреЗ 65536 (0x10000) "рдХреЛрдб рдкреЙрдЗрдВрдЯреНрд╕" рдпреЗрдереЗ "рдХреЛрдб рдкреЙрдЗрдВрдЯ" рдЪреА рд╕рдВрдХрд▓реНрдкрдирд╛ рд╕реЛрдкреА рдЖрд╣реЗ рд╡рд░реНрдг рд╕рдВрдЦреНрдпрд╛, рддреНрдпрд╛рд╕ рдпреБрдирд┐рдХреЛрдбрджреНрд╡рд╛рд░реЗ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдкрд░рдВрддреБ, рд╡рд░ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдпреБрдирд┐рдХреЛрдбрдордзреНрдпреЗ рдХреЗрд╡рд│ рд╡реИрдпрдХреНрддрд┐рдХ рд╡рд░реНрдгрдЪ рдирд╛рд╣реА рддрд░ рддреНрдпрд╛рдВрдЪреЗ рдШрдЯрдХ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рдЪрд┐рдиреНрд╣ рджреЗрдЦреАрд▓ рджрд┐рд▓реЗ рдЬрд╛рддрд╛рдд (рдЖрдгрд┐ рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдХрд╛рд╣реАрд╣реА рд╕рдВрдЦреНрдпрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдирд╕рддреЗ - рдХрджрд╛рдЪрд┐рдд рдХрд╛рд╣реА рдХрд╛рд│рд╛рд╕рд╛рдареА, рдкрд░рдВрддреБ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЗрддрдХреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдирд╛рд╣реА), рдореНрд╣рдгреВрди рд╣реЗ рдЕрдзрд┐рдХ рдмрд░реЛрдмрд░ рдЖрд╣реЗ рдиреЗрд╣рдореА рд╡рд┐рд╢реЗрд╖рдд: рд╕реНрд╡рддрдГ рд╕рдВрдЦреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдмрджреНрджрд▓ рдмреЛрд▓рд╛, рдЪрд┐рдиреНрд╣рд╛рдВрдмрджреНрджрд▓ рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рдЦрд╛рд▓реАрд▓ рдордзреНрдпреЗ, рд╕рдВрдХреНрд╖рд┐рдкреНрддрддреЗрд╕рд╛рдареА, рдореА "рдХреЛрдб рдкреЙрдЗрдВрдЯ" рдпрд╛ рд╢рдмреНрджрд╛рдЪрд╛ рдЕрд░реНрде рд▓рд╛рд╡рдд "рдкреНрд░рддреАрдХ" рд╣рд╛ рд╢рдмреНрдж рд╡рд╛рдкрд░реЗрди.

рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ
рдпреБрдирд┐рдХреЛрдб рд╡рд┐рдорд╛рдиреЗ. рддреБрдореНрд╣реА рдмрдШреВ рд╢рдХрддрд╛, рддреНрдпрд╛рддреАрд▓ рдмрд╣реБрддреЗрдХ (рд╡рд┐рдорд╛рди 4 рддреЗ 13) рдЕрджреНрдпрд╛рдк рди рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдЖрд╣реЗрдд.

рд╕рд░реНрд╡рд╛рдд рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рд╕рд░реНрд╡ рдореБрдЦреНрдп "рд▓рдЧрджрд╛" рд╢реВрдиреНрдп рд╕рдорддрд▓ рдЖрд╣реЗ, рддреНрдпрд╛рд▓рд╛ "рдореНрд╣рдгрддрд╛рдд.рдореВрд▓рднреВрдд рдмрд╣реБрднрд╛рд╖рд┐рдХ рд╡рд┐рдорд╛рди". рдЬрд░ рдПрдЦрд╛рджреНрдпрд╛ рдУрд│реАрдд рдЖрдзреБрдирд┐рдХ рднрд╛рд╖реЗрддреАрд▓ (рдЪрд┐рдиреАрд╕рд╣) рдордЬрдХреВрд░ рдЕрд╕реЗрд▓ рддрд░, рддреБрдореНрд╣реА рдпрд╛ рд╡рд┐рдорд╛рдирд╛рдЪреНрдпрд╛ рдкрд▓реАрдХрдбреЗ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА. рдкрд░рдВрддреБ рддреБрдореНрд╣реА рдЙрд░реНрд╡рд░рд┐рдд рдпреБрдирд┐рдХреЛрдб рджреЗрдЦреАрд▓ рдХрд╛рдкреВрди рдЯрд╛рдХреВ рд╢рдХрдд рдирд╛рд╣реА - рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЗрдореЛрдЬреА рдореБрдЦреНрдпрддрдГ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдЯреЛрдХрд╛рд▓рд╛ рдЕрд╕рддрд╛рдд. рдкреБрдврдЪреЗ рд╡рд┐рдорд╛рди"рдкреВрд░рдХ рдмрд╣реБрднрд╛рд╖рд┐рдХ рд╕рдорддрд▓"(рддреЗ рдкрд╛рд╕реВрди рд╡рд┐рд╕реНрддрд╛рд░рддреЗ 0x10000 рддреЗ 0x1FFFF). рдореНрд╣рдгреВрди UTF-16 рдЕрд╕реЗ рдХрд░рддреЗ: рд╕рд░реНрд╡ рд╡рд░реНрдг рдЖрдд рдпреЗрддрд╛рдд рдореВрд▓рднреВрдд рдмрд╣реБрднрд╛рд╖рд┐рдХ рд╡рд┐рдорд╛рди, рд╕рдВрдмрдВрдзрд┐рдд рджреЛрди-рдмрд╛рдЗрдЯ рдХреНрд░рдорд╛рдВрдХрд╛рд╕рд╣ "рдЬрд╕реЗ рдЖрд╣реЗ рддрд╕реЗ" рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗрдд. рддрдерд╛рдкрд┐, рдпрд╛ рд╢реНрд░реЗрдгреАрддреАрд▓ рдХрд╛рд╣реА рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдг рджрд░реНрд╢рд╡рдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рдЕрд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛рдд рдХреА рдмрд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рдпрд╛ рдЬреЛрдбреАрдирдВрддрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рджреБрд╕рд░реНрдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - рдпрд╛ рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕рдЪреА рдореВрд▓реНрдпреЗ рдПрдХрддреНрд░ рдХрд░реВрди, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдорд┐рд│рддреЗ рдЬреА рдХрд╡реНрд╣рд░ рдХрд░рддреЗ рд╕рдВрдкреВрд░реНрдг рд╡реИрдз рдпреБрдирд┐рдХреЛрдб рд╢реНрд░реЗрдгреА. рдпрд╛ рдХрд▓реНрдкрдиреЗрд▓рд╛ "рд╕рд░реЛрдЧреЗрдЯ рдЬреЛрдбрдкреЗ" рдореНрд╣рдгрддрд╛рддтАФрддреБрдореНрд╣реА рдХрджрд╛рдЪрд┐рдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рдРрдХрд▓реЗ рдЕрд╕реЗрд▓.

рдореНрд╣рдгреВрди UTF-16 рд▓рд╛ рджреЛрди рдХрд┐рдВрд╡рд╛ (рдЕрддреНрдпрдВрдд рджреБрд░реНрдорд┐рд│ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ) рдкреНрд░рддрд┐ "рдХреЛрдб рдкреЙрдЗрдВрдЯ" рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд. рд╣реЗ рд╕рд░реНрд╡ рд╡реЗрд│ рдЪрд╛рд░ рдмрд╛рдЗрдЯ рд╡рд╛рдкрд░рдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд▓реЕрдЯрд┐рди (рдЖрдгрд┐ рдЗрддрд░ ASCII рдЕрдХреНрд╖рд░реЗ) рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реНрдпрд╛рд╡рд░ рд╢реВрдиреНрдпрд╛рд╡рд░реАрд▓ рдЕрд░реНрдзреА рдЬрд╛рдЧрд╛ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡рддреЗ. UTF-8 рд╣реЗ рджреБрд░реБрд╕реНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗ рдЖрд╣реЗ: ASCII рдкреВрд░реНрд╡реАрдкреНрд░рдорд╛рдгреЗ, рдлрдХреНрдд рдПрдХ рдмрд╛рдЗрдЯ рд╡реНрдпрд╛рдкрддреЗ; рдкрд╛рд╕реВрди рдХреЛрдб 0x80 рддреЗ 0x7FF - рджреЛрди рдмрд╛рдЗрдЯреНрд╕; рдкрд╛рд╕реВрди 0x800 рддреЗ 0xFFFF - рддреАрди, рдЖрдгрд┐ рдкрд╛рд╕реВрди 0x10000 рддреЗ 0x10FFFF - рдЪрд╛рд░. рдПрдХреАрдХрдбреЗ, рд▓реЕрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдЪрд╛рдВрдЧрд▓реА рдЭрд╛рд▓реА рдЖрд╣реЗ: ASCII рд╕рд╣ рд╕реБрд╕рдВрдЧрддрддрд╛ рдкрд░рдд рдЖрд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рд╡рд┐рддрд░рдг рдЕрдзрд┐рдХ рд╕рдорд╛рди рд░реАрддреАрдиреЗ 1 рддреЗ 4 рдмрд╛рдЗрдЯреНрд╕ рдкрд░реНрдпрдВрдд рдкрд╕рд░рд▓реЗ рдЖрд╣реЗ. рдкрд░рдВрддреБ рд▓реЕрдЯрд┐рди рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдЗрддрд░ рд╡рд░реНрдгрдорд╛рд▓рд╛ UTF-16 рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рдлрд╛рдпрджреЗрд╢реАрд░ рдирд╛рд╣реАрдд рдЖрдгрд┐ рдЕрдиреЗрдХрд╛рдВрдирд╛ рдЖрддрд╛ рджреЛрди рдРрд╡рдЬреА рддреАрди рдмрд╛рдЗрдЯреНрд╕рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ - рджреЛрди-рдмрд╛рдЗрдЯ рд░реЗрдХреЙрд░реНрдбрджреНрд╡рд╛рд░реЗ рд╡реНрдпрд╛рдкрд▓реЗрд▓реА рд╢реНрд░реЗрдгреА 32 рдкрдЯреАрдиреЗ рдХрдореА рдЭрд╛рд▓реА рдЖрд╣реЗ. 0xFFFF рддреЗ 0x7FF, рдЖрдгрд┐ рдЪрд┐рдиреА рдХрд┐рдВрд╡рд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬреЙрд░реНрдЬрд┐рдпрдирдЪрд╛ рддреНрдпрд╛рдд рд╕рдорд╛рд╡реЗрд╢ рдирд╛рд╣реА. рд╕рд┐рд░рд┐рд▓рд┐рдХ рдЖрдгрд┐ рдЗрддрд░ рдкрд╛рдЪ рдЕрдХреНрд╖рд░реЗ - рд╣реБрд░реЗ - рднрд╛рдЧреНрдпрд╡рд╛рди, рдкреНрд░рддрд┐ рд╡рд░реНрдг 2 рдмрд╛рдЗрдЯ.

рдЕрд╕реЗ рдХрд╛ рдШрдбрддреЗ? UTF-8 рдХреЕрд░реЗрдХреНрдЯрд░ рдХреЛрдбрдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╕реЗ рдХрд░рддреЗ рддреЗ рдкрд╛рд╣реВ рдпрд╛:
рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ
рдереЗрдЯ рд╕рдВрдЦреНрдпрд╛ рджрд░реНрд╢рд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдЪрд┐рдиреНрд╣рд╛рд╕рд╣ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдмрд┐рдЯ рдпреЗрдереЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд x. рд╣реЗ рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдХреА рджреЛрди-рдмрд╛рдЗрдЯ рд░реЗрдХреЙрд░реНрдбрдордзреНрдпреЗ рдЕрд╕реЗ рдлрдХреНрдд 11 рдмрд┐рдЯ рдЖрд╣реЗрдд (16 рдкреИрдХреА). рдпреЗрдереЗ рдЕрдЧреНрд░рдЧрдгреНрдп рдмрд┐рдЯреНрд╕рдордзреНрдпреЗ рдлрдХреНрдд рдПрдХ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рдЖрд╣реЗ. рдЪрд╛рд░-рдмрд╛рдЗрдЯ рд░реЗрдХреЙрд░реНрдбрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, 21 рдкреИрдХреА 32 рдмрд┐рдЯреНрд╕ рдХреЛрдб рдкреЙрдЗрдВрдЯ рдирдВрдмрд░рд╕рд╛рдареА рд╡рд╛рдЯрдк рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд - рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рддреАрди рдмрд╛рдЗрдЯреНрд╕ (рдЬреЗ рдПрдХреВрдг 24 рдмрд┐рдЯреНрд╕ рджреЗрддрд╛рдд) рдкреБрд░реЗрд╕реЗ рдЕрд╕рддреАрд▓, рдкрд░рдВрддреБ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдорд╛рд░реНрдХрд░ рдЦреВрдк рдЬрд╛рд╕реНрдд рдЦрд╛рддрд╛рдд.

рд╣реЗ рд╡рд╛рдИрдЯ рдЖрд╣реЗ рдХрд╛? рдЦрд░рдВрдЪ рдирд╛рд╣реА. рдПрдХреАрдХрдбреЗ, рдЬрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЬрд╛рдЧреЗрдЪреА рдЦреВрдк рдХрд╛рд│рдЬреА рдЕрд╕реЗрд▓, рддрд░ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрд╣реЗрдд рдЬреЗ рд╕рд░реНрд╡ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдиреНрдЯреНрд░реЙрдкреА рдЖрдгрд┐ рд░рд┐рдбрдВрдбрдВрд╕реА рд╕рд╣рдЬрдкрдгреЗ рдХрд╛рдвреВрди рдЯрд╛рдХреВ рд╢рдХрддрд╛рдд. рджреБрд╕рд░реАрдХрдбреЗ, рдпреБрдирд┐рдХреЛрдбрдЪреЗ рдзреНрдпреЗрдп рд╢рдХреНрдп рддрд┐рддрдХреЗ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рд╣реЗ рд╣реЛрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдореНрд╣реА UTF-8 рдордзреНрдпреЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реА рдПрдХ рдУрд│ рдпрд╛ рдХреЛрдбрд╡рд░ рд╕реЛрдкрд╡реВ рд╢рдХрддреЛ рдЬреА рдкреВрд░реНрд╡реА рдлрдХреНрдд ASCII рд╕реЛрдмрдд рдХрд╛рдо рдХрд░рдд рд╣реЛрддреА рдЖрдгрд┐ рдШрд╛рдмрд░реВ рдирдХрд╛ рдХреА ASCII рд╢реНрд░реЗрдгреАрддреАрд▓ рдПрдХ рд╡рд░реНрдг рджрд┐рд╕реЗрд▓ рдЬреЛ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдирд╛рд╣реА (рддрд░реАрд╣реА, UTF-8 рдордзреНрдпреЗ рд╕рд░реНрд╡ рд╢реВрдиреНрдп рдмрд┐рдЯ рдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрдгрд╛рд░реЗ рдмрд╛рдЗрдЯреНрд╕ - рд╣реЗрдЪ ASCII рдЖрд╣реЗ). рдЖрдгрд┐ рдЬрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛ рдореЛрдареНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдордзреВрди рдПрдХ рд▓рд╣рд╛рди рд╢реЗрдкреВрдЯ рдЕрдЧрджреА рд╕реБрд░реБрд╡рд╛рддреАрдкрд╛рд╕реВрдирдЪ рдбреАрдХреЛрдб рди рдХрд░рддрд╛ рдХрд╛рдкрд╛рдпрдЪреА рдЕрд╕реЗрд▓ (рдХрд┐рдВрд╡рд╛ рдЦрд░рд╛рдм рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдирдВрддрд░ рдорд╛рд╣рд┐рддреАрдЪрд╛ рдХрд╛рд╣реА рднрд╛рдЧ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рд╛), рддрд░ рдЕрдХреНрд╖рд░ рдХреЛрдареЗ рд╕реБрд░реВ рд╣реЛрддреЗ рддреЗ рдСрдлрд╕реЗрдЯ рд╢реЛрдзрдгреЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╕реЛрдкреЗ рдЖрд╣реЗ (рддреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ. рдереЛрдбрд╛ рдЙрдкрд╕рд░реНрдЧ рдЕрд╕рд▓реЗрд▓реЗ рдмрд╛рдЗрдЯреНрд╕ рд╡рдЧрд│рдгреНрдпрд╛рд╕рд╛рдареА 10).

рдордЧ рдХрд╛рд╣реАрддрд░реА рдирд╡реАрди рд╢реЛрдз рдХрд╛?

рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЕрдзреВрдирдордзреВрди рдЕрд╢реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╕рддреЗ рдЬреЗрд╡реНрд╣рд╛ рдбрд┐рдлреНрд▓реЗрдЯ рд╕рд╛рд░рдЦреНрдпрд╛ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЦрд░рд╛рдмрдкрдгреЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛рдд, рдкрд░рдВрддреБ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреЗ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд╛рдзреНрдп рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ. рд╡реИрдпрдХреНрддрд┐рдХрд░рд┐рддреНрдпрд╛, рдЗрдорд╛рд░рддреАрдмрджреНрджрд▓ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛рдирд╛ рдорд▓рд╛ рд╣реА рд╕рдорд╕реНрдпрд╛ рдЖрд▓реА рд╕рдВрдХреБрдЪрд┐рдд рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рднрд╛рд╖рд╛рдВрдордзреАрд▓ рд╢рдмреНрджрд╛рдВрд╕рд╣ рдореЛрдареНрдпрд╛ рд╢рдмреНрджрдХреЛрд╢рд╛рд╕рд╛рдареА. рдПрдХреАрдХрдбреЗ, рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдЦреВрдкрдЪ рд▓рд╣рд╛рди рдЖрд╣реЗ, рдореНрд╣рдгреВрди рддреЛ рд╕рдВрдХреБрдЪрд┐рдд рдХрд░рдгреЗ рдЕрдкреНрд░рднрд╛рд╡реА рд╣реЛрдИрд▓. рджреБрд╕рд░реАрдХрдбреЗ, рдореА рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддрд▓реЗрд▓реНрдпрд╛ рдЯреНрд░реА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рд░рдЪрдирд╛ рдЕрд╢реА рдХреЗрд▓реА рдЧреЗрд▓реА рд╣реЛрддреА рдХреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯрдиреЗ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЯреНрд░реА рд╡реНрд╣рд░реНрдЯреЗрдХреНрд╕ рддрдпрд╛рд░ рдХреЗрд▓рд╛, рддреНрдпрд╛рдореБрд│реЗ рддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрдореА рдХрд░рдгреЗ рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рд╣реЛрддреЗ. рдорд╛рдЭреНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдд Az.js (рдореНрд╣рдгреВрди pymorphy2, рдЬреНрдпрд╛рд╡рд░ рддреЗ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ) рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╕рд╣рдЬрдкрдгреЗ рд╕реЛрдбрд╡рд┐рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ - рдордзреНрдпреЗ рдкреЕрдХ рдХреЗрд▓реЗрд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреАрдПрдбрдмреНрд▓реНрдпреВрдЬреА-рд╢рдмреНрджрдХреЛрд╢, рддреЗрдереЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдЪрд╛рдВрдЧрд▓реЗ рдЬреБрдиреЗ CP1251. рдкрд░рдВрддреБ, рд╕рдордЬрдгреНрдпрд╛рд╕ рд╕реЛрдкреНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╣реЗ рдХреЗрд╡рд│ рдорд░реНрдпрд╛рджрд┐рдд рд╡рд░реНрдгрдорд╛рд▓рд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ - рдЕрд╢рд╛ рд╢рдмреНрджрдХреЛрд╢рд╛рдд рдЪреАрдиреА рднрд╛рд╖реЗрддреАрд▓ рдПрдХ рдУрд│ рдЬреЛрдбрд▓реА рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА.

рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ, рдореА рдЕрд╢рд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреНрдпреЗ UTF-8 рд╡рд╛рдкрд░рддрд╛рдирд╛ рдЙрджреНрднрд╡рдгрд╛рд░реА рдЖрдгрдЦреА рдПрдХ рдЕрдкреНрд░рд┐рдп рд╕реВрдХреНрд╖реНрдорддрд╛ рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ. рд╡рд░реАрд▓ рдЪрд┐рддреНрд░рд╛рдд рдЕрд╕реЗ рджрд┐рд╕реВрди рдпреЗрддреЗ рдХреА рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджреЗ рдЕрдХреНрд╖рд░ рджреЛрди рдмрд╛рдЗрдЯреНрд╕ рдореНрд╣рдгреВрди рд▓рд┐рд╣рд┐рд▓реЗ рдЬрд╛рддреЗ рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдЯреНрд╕ рдПрдХрд╛ рдУрд│реАрдд рдпреЗрдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рдмрд┐рдЯреНрд╕рдЪреНрдпрд╛ рдЬреЛрдбреАрдиреЗ рд╡реЗрдЧрд│реЗ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. 10 рдордзреНрдпреЗ: 110xxxxx 10xxxxxx. рдпрд╛рдореБрд│реЗ, рдЬреЗрд╡реНрд╣рд╛ рдХреЕрд░реЗрдХреНрдЯрд░ рдХреЛрдбрдордзреНрдпреЗ рджреБрд╕рд▒реНрдпрд╛ рдмрд╛рдЗрдЯрдЪреЗ рдЦрд╛рд▓рдЪреЗ 6 рдмрд┐рдЯреНрд╕ рдУрд╡реНрд╣рд░рдлреНрд▓реЛ рд╣реЛрддрд╛рдд (рдореНрд╣рдгрдЬреЗ, рдПрдХ рд╕рдВрдХреНрд░рдордг рд╣реЛрддреЗ 10111111 тЖТ 10000000), рдирдВрддрд░ рдкрд╣рд┐рд▓рд╛ рдмрд╛рдЗрдЯ рджреЗрдЦреАрд▓ рдмрджрд▓рддреЛ. рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА "p" рдЕрдХреНрд╖рд░ рдмрд╛рдЗрдЯреНрд╕рджреНрд╡рд╛рд░реЗ рджрд░реНрд╢рд╡рд┐рд▓реЗ рдЬрд╛рддреЗ 0xD0 0xBF, рдЖрдгрд┐ рдкреБрдвреАрд▓ "r" рдЖрдзреАрдЪ рдЖрд╣реЗ 0xD1 0x80. рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖рд╛рдд, рдпрд╛рдореБрд│реЗ рдореВрд│ рдиреЛрдбрдЪреЗ рджреЛрди рднрд╛рдЧ рд╣реЛрддрд╛рдд - рдЙрдкрд╕рд░реНрдЧрд╛рд╕рд╛рдареА рдПрдХ 0xD0, рдЖрдгрд┐ рджреБрд╕рд░рд╛ рд╕рд╛рдареА 0xD1 (рдЬрд░реА рд╕рдВрдкреВрд░реНрдг рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдлрдХреНрдд рджреБрд╕рд▒реНрдпрд╛ рдмрд╛рдЗрдЯрджреНрд╡рд╛рд░реЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ).

рдорд▓рд╛ рдХрд╛рдп рдорд┐рд│рд╛рд▓реЗ

рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛рдирд╛, рдореА рдмрд┐рдЯреНрд╕рд╕рд╣ рдЧреЗрдо рдЦреЗрд│рдгреНрдпрд╛рдЪрд╛ рд╕рд░рд╛рд╡ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рдЖрдгрд┐ рддреНрдпрд╛рдЪ рд╡реЗрд│реА рд╕рдВрдкреВрд░реНрдг рдпреБрдирд┐рдХреЛрдбрдЪреНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрдЪреА рдереЛрдбреАрд╢реА рдЪрд╛рдВрдЧрд▓реА рдУрд│рдЦ рдХрд░реВрди рдШреНрдпрд╛. рдкрд░рд┐рдгрд╛рдо UTF-C рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реНрд╡рд░реВрдк ("C" рд╕рд╛рдареА рд╕рдВрдХреНрд╖рд┐рдкреНрдд), рдЬреЗ рдкреНрд░рддрд┐ рдХреЛрдб рдкреЙрдЗрдВрдЯ 3 рдмрд╛рдЗрдЯреНрд╕рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЦрд░реНрдЪ рдХрд░рдд рдирд╛рд╣реА рдЖрдгрд┐ рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рдЦрд░реНрдЪ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рд╕рдВрдкреВрд░реНрдг рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдУрд│реАрд╕рд╛рдареА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯ. рдпрд╛рдореБрд│реЗ рдЕрдиреЗрдХ рдЧреИрд░-ASCII рдЕрдХреНрд╖рд░рд╛рдВрд╡рд░ рдЕрд╕реЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╣реЛрддреЗ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ.

рдореА рдлреЙрд░реНрдордордзреНрдпреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЖрдгрд┐ рдбреАрдХреЛрдбрд┐рдВрдЧ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рдЙрджрд╛рд╣рд░рдгреЗ рд╕рд╛рджрд░ рдХреЗрд▓реА рдЖрд╣реЗрдд JavaScript рдЖрдгрд┐ Go рд▓рд╛рдпрдмреНрд░рд░реА, рддреБрдореНрд╣реА рддреЗ рддреБрдордЪреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рдореБрдХреНрддрдкрдгреЗ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рдкрд░рдВрддреБ рддрд░реАрд╣реА рдореА рдпрд╛рд╡рд░ рдЬреЛрд░ рджреЗрдИрди рдХреА рдПрдХрд╛ рдЕрд░реНрдерд╛рдиреЗ рд╣реЗ рд╕реНрд╡рд░реВрдк "рд╕рд╛рдпрдХрд▓" рд░рд╛рд╣рддреЗ рдЖрдгрд┐ рдореА рддреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рдд рдирд╛рд╣реА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдЪреА рдЧрд░рдЬ рдХрд╛ рдЖрд╣реЗ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рди рдШреЗрддрд╛. рдЧрдВрднреАрд░ "UTF-8 рдЪреНрдпрд╛ рд╕реБрдзрд╛рд░рдгреЗ" рдкреЗрдХреНрд╖рд╛ рд╣рд╛ рдЕрдЬреВрди рдПрдХ рдкреНрд░рдпреЛрдЧ рдЖрд╣реЗ. рддрд░реАрд╕реБрджреНрдзрд╛, рддреЗрдереЗ рдХреЛрдб рд╕реБрдмрдХрдкрдгреЗ, рд╕рдВрдХреНрд╖рд┐рдкреНрддрдкрдгреЗ, рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдХрд╡реНрд╣рд░реЗрдЬрд╕рд╣ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ.

рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-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 рдмрд╛рдЗрдЯреНрд╕рдордзреНрдпреЗ рдмрд╕рддрд╛рдд.

рдПрдиреНрдХреЛрдбрд░ рд╕реНрдерд┐рддреА рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░рд╛

рдЖрддрд╛ рд╕реНрд╡рддрдГрдЪ рд░реЗрд╖рд╛рдВрдЪреНрдпрд╛ рдЧреБрдгрдзрд░реНрдорд╛рдВрдмрджреНрджрд▓ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдпрд╛. рд╢рдмреНрджрдХреЛрд╢рд╛рдд рдмрд╣реБрддреЗрдХ рд╡реЗрд│рд╛ рд╕рдорд╛рди рд╡рд░реНрдгрдорд╛рд▓реЗрддреАрд▓ рдЕрдХреНрд╖рд░рд╛рдВрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рд╢рдмреНрдж рдЕрд╕рддрд╛рдд рдЖрдгрд┐ рд╣реЗ рдЗрддрд░ рдЕрдиреЗрдХ рдЧреНрд░рдВрдерд╛рдВрд╕рд╛рдареА рджреЗрдЦреАрд▓ рдЦрд░реЗ рдЖрд╣реЗ. рд╣реЗ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдПрдХрджрд╛ рд╕реВрдЪрд┐рдд рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрдИрд▓ рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛рддреАрд▓ рдЕрдХреНрд╖рд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рджрд░реНрд╢рд╡рд╛. рдпреБрдирд┐рдХреЛрдб рд╕рд╛рд░рдгреАрддреАрд▓ рд╡рд░реНрдгрд╛рдВрдЪреА рдорд╛рдВрдбрдгреА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдорджрдд рдХрд░реЗрд▓ рдХрд╛ рддреЗ рдкрд╛рд╣реВ.

рд╡рд░ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдпреБрдирд┐рдХреЛрдбрдЪреА рд╡рд┐рднрд╛рдЧрдгреА рдХреЗрд▓реА рдЖрд╣реЗ рд╡рд┐рдорд╛рди рдкреНрд░рддреНрдпреЗрдХреА 65536 рдХреЛрдб. рдкрд░рдВрддреБ рд╣рд╛ рдлрд╛рд░рд╕рд╛ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рднрд╛рдЧ рдирд╛рд╣реА (рдЖрдзреАрдЪ рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдмрд╣реБрддреЗрдХрджрд╛ рдЖрдкрдг рд╢реВрдиреНрдп рд╡рд┐рдорд╛рдирд╛рдд рдЕрд╕рддреЛ). рджреНрд╡рд╛рд░реЗ рд╡рд┐рднрд╛рдЧрдгреА рдЕрдзрд┐рдХ рдордиреЛрд░рдВрдЬрдХ рдЖрд╣реЗ рдЕрд╡рд░реЛрдз рдпрд╛ рд╢реНрд░реЗрдгреАрдВрдЪреА рдпрд╛рдкреБрдвреЗ рдирд┐рд╢реНрдЪрд┐рдд рд▓рд╛рдВрдмреА рдирд╛рд╣реА рдЖрдгрд┐ рддреА рдЕрдзрд┐рдХ рдЕрд░реНрдердкреВрд░реНрдг рдЖрд╣реЗрдд - рдирд┐рдпрдо рдореНрд╣рдгреВрди, рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рди рд╡рд░реНрдгрдорд╛рд▓рд╛рддреАрд▓ рд╡рд░реНрдг рдПрдХрддреНрд░ рдХрд░рддреЗ.

рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ
рдмрдВрдЧрд╛рд▓реА рд╡рд░реНрдгрдорд╛рд▓реЗрддреАрд▓ рд╡рд░реНрдг рдЕрд╕рд▓реЗрд▓рд╛ рдмреНрд▓реЙрдХ. рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдХрд╛рд░рдгрд╛рд╕реНрддрд╡, рд╣реЗ рдлрд╛рд░ рджрд╛рдЯ рдкреЕрдХреЗрдЬрд┐рдВрдЧрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдирд╛рд╣реА - 96 рдмреНрд▓реЙрдХ рдХреЛрдб рдкреЙрдЗрдВрдЯреНрд╕рдордзреНрдпреЗ 128 рд╡рд░реНрдг рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рддрдкрдгреЗ рд╡рд┐рдЦреБрд░рд▓реЗрд▓реЗ рдЖрд╣реЗрдд.

рдмреНрд▓реЙрдХреНрд╕рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рдЖрдХрд╛рд░ рдиреЗрд╣рдореА 16 рдЪреНрдпрд╛ рдкрдЯреАрдд рдЕрд╕рддрд╛рдд - рд╣реЗ рдлрдХреНрдд рд╕реЛрдпреАрд╕рд╛рдареА рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЕрдиреЗрдХ рдмреНрд▓реЙрдХреНрд╕ 128 рдХрд┐рдВрд╡рд╛ рдЕрдЧрджреА 256 рдЪреНрдпрд╛ рдкрдЯреАрдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдореВрд▓реНрдпрд╛рдВрд╡рд░ рд╕реБрд░реВ рд╣реЛрддрд╛рдд рдЖрдгрд┐ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛рдд - рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдореВрд▓рднреВрдд рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ 256 рдмрд╛рдЗрдЯреНрд╕ рдШреЗрддреЗ 0x0400 рддреЗ 0x04FF. рд╣реЗ рдЕрдЧрджреА рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ: рдЬрд░ рдЖрдкрдг рдЙрдкрд╕рд░реНрдЧ рдПрдХрджрд╛ рд╕реЗрд╡реНрд╣ рдХреЗрд▓рд╛ 0x04, рдирдВрддрд░ рдХреЛрдгрддреЗрд╣реА рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдг рдПрдХрд╛ рдмрд╛рдЗрдЯрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЦрд░реЗ рдЖрд╣реЗ, рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдЖрдореНрд╣реА ASCII (рдЖрдгрд┐ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд░реНрдгрд╛рдВрдХрдбреЗ) рдкрд░рдд рдпреЗрдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдЧрдорд╛рд╡реВ. рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╣реЗ рдХрд░рддреЛ:

  1. рджреЛрди рдмрд╛рдЗрдЯреНрд╕ 10yyyyyy yxxxxxxx рдХреЗрд╡рд│ рд╕рдВрдЦреНрдпрд╛ рдЕрд╕рд▓реЗрд▓реЗ рдЪрд┐рдиреНрд╣ рджрд░реНрд╢рд╡рдд рдирд╛рд╣реА yyyyyy yxxxxxxx, рдкрдг рдмрджрд▓рд╛ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╡рд░ yyyyyy y0000000 (рдореНрд╣рдгрдЬреЗрдЪ рдХрдореАрдд рдХрдореА рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рд╡рдЧрд│рддрд╛ рд╕рд░реНрд╡ рдмрд┐рдЯреНрд╕ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рддрд╛рдд 7 рдмрд┐рдЯреНрд╕);
  2. рдПрдХ рдмрд╛рдЗрдЯ 0xxxxxxx рд╣реЗ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╡рд░реНрдг рдЖрд╣реЗ. рддреЗ рдлрдХреНрдд рдСрдлрд╕реЗрдЯрдордзреНрдпреЗ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЪрд░рдг 1 рдордзреНрдпреЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд▓реЗ рд╣реЛрддреЗ. рдЖрдореНрд╣реА рд╡рд░реНрдгрдорд╛рд▓рд╛ рдмрджрд▓рд▓реА рдирд╕рд▓реА рддрд░реА рдСрдлрд╕реЗрдЯ рд╢реВрдиреНрдп рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА ASCII рд╕рд╣ рд╕реБрд╕рдВрдЧрддрддрд╛ рд░рд╛рдЦрд▓реА.

рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ 3 рдмрд╛рдЗрдЯреНрд╕ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрд╕рд╛рдареА:

  1. рддреАрди рдмрд╛рдЗрдЯреНрд╕ 110yyyyy yxxxxxxx xxxxxxxx рд╕рдВрдЦреНрдпреЗрд╕рд╣ рдЪрд┐рдиреНрд╣ рджрд░реНрд╢рд╡рд╛ yyyyyy yxxxxxxx xxxxxxxx, рдмрджрд▓ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╡рд░ yyyyyy y0000000 00000000 (рд▓рд╣рд╛рди рдореБрд▓реЗ рд╕реЛрдбреВрди рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЖрдард╡рд▓реЗ 15 рдмрд┐рдЯреНрд╕), рдЖрдгрд┐ рдЖрдореНрд╣реА рдЖрддрд╛ рдЬреНрдпрд╛ рдмреЙрдХреНрд╕рдордзреНрдпреЗ рдЖрд╣реЛрдд рддреЛ рдЪреЗрдХ рдХрд░рд╛ рд▓рд╛рдВрдм рдореЛрдб (рд╡рд░реНрдгрдорд╛рд▓рд╛ рдкрд░рдд рджреБрд╣реЗрд░реА-рдмрд╛рдЗрдЯрдордзреНрдпреЗ рдмрджрд▓рддрд╛рдирд╛, рдЖрдореНрд╣реА рд╣рд╛ рдзреНрд╡рдЬ рд░реАрд╕реЗрдЯ рдХрд░реВ);
  2. рджреЛрди рдмрд╛рдЗрдЯреНрд╕ 0xxxxxxx xxxxxxxx рд▓рд╛рдВрдм рдореЛрдбрдордзреНрдпреЗ рд╣реЗ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдгрдорд╛рд▓рд╛рдЪреЗ рд╡рд░реНрдг рдЖрд╣реЗ. рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ, рдЖрдореНрд╣реА рддреЗ рдЪрд░рдг 1 рдордзреАрд▓ рдСрдлрд╕реЗрдЯрд╕рд╣ рдЬреЛрдбрддреЛ. рдлрд░рдХ рдПрд╡рдврд╛рдЪ рдЖрд╣реЗ рдХреА рдЖрддрд╛ рдЖрдореНрд╣реА рджреЛрди рдмрд╛рдЗрдЯреНрд╕ рд╡рд╛рдЪрддреЛ (рдХрд╛рд░рдг рдЖрдореНрд╣реА рдпрд╛ рдореЛрдбрд╡рд░ рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реЗ рдЖрд╣реЗ).

рдЫрд╛рди рд╡рд╛рдЯрддрдВ: рдЖрддрд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдЪ 7-рдмрд┐рдЯ рдпреБрдирд┐рдХреЛрдб рд╢реНрд░реЗрдгреАрддреАрд▓ рд╡рд░реНрдг рдПрдиреНрдХреЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддрд╛рдирд╛, рдЖрдореНрд╣реА рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ 1 рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯ рдЖрдгрд┐ рдкреНрд░рддрд┐ рд╡рд░реНрдг рдПрдХреВрдг рдПрдХ рдмрд╛рдЗрдЯ рдЦрд░реНрдЪ рдХрд░рддреЛ.

рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ
рдЖрдзреАрдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдкреИрдХреА рдПрдХрд╛рд╡рд░ рдХрд╛рдо рдХрд░рдд рдЖрд╣реЗ. рд╣реЗ рдЖрдзреАрдЪ рдЕрдиреЗрдХрджрд╛ UTF-8 рд▓рд╛ рд╣рд░рд╡рддреЗ, рдкрд░рдВрддреБ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдЬреВрдирд╣реА рдЬрд╛рдЧрд╛ рдЖрд╣реЗ.

рдХрд╛рдп рд╡рд╛рдИрдЯ рдЖрд╣реЗ? рдкреНрд░рдердо, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдЕрдЯ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдСрдлрд╕реЗрдЯ рдЖрдгрд┐ рдЪреЗрдХрдмреЙрдХреНрд╕ рд▓рд╛рдВрдм рдореЛрдб. рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдгрдЦреА рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рддреЗ: рдЖрддрд╛ рд╕рдорд╛рди рд╡рд░реНрдг рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдВрдордзреНрдпреЗ рд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╢реЛрдзрдгреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдЖрдгрд┐ рдХреЗрд╡рд│ рдмрд╛рдЗрдЯреНрд╕рдЪреА рддреБрд▓рдирд╛ рдХрд░реВрди рдирд╛рд╣реА. рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рдЖрдореНрд╣реА рд╡рд░реНрдгрдорд╛рд▓рд╛ рдмрджрд▓рддрд╛рдЪ, рддреЗ ASCII рд╡рд░реНрдгрд╛рдВрдЪреНрдпрд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧрд╕рд╣ рдЦрд░рд╛рдм рдЭрд╛рд▓реЗ (рдЖрдгрд┐ рд╣реЗ рдХреЗрд╡рд│ рд▓реЕрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛рдЪ рдирд╛рд╣реА рддрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рдирд╛рдВрд╕рд╣ рдореВрд▓рднреВрдд рд╡рд┐рд░рд╛рдордЪрд┐рдиреНрд╣реЗ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд) - рддреНрдпрд╛рдВрдирд╛ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдкреБрдиреНрд╣рд╛ 0 рд╡рд░ рдмрджрд▓рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ, рдкреБрдиреНрд╣рд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯ (рдЖрдгрд┐ рдирдВрддрд░ рдЖрдордЪреНрдпрд╛ рдореБрдЦреНрдп рдореБрджреНрджреНрдпрд╛рд╡рд░ рдкрд░рдд рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА рджреБрд╕рд░рд╛).

рдПрдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдЪрд╛рдВрдЧрд▓реА рдЖрд╣реЗ, рджреЛрди рдЪрд╛рдВрдЧрд▓реА рдЖрд╣реЗ

рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рддреАрдирдкреИрдХреА рдЖрдгрдЦреА рдПрдХ рдкрд┐рд│реВрди рдЖрдордЪреЗ рдмрд┐рдЯ рдЙрдкрд╕рд░реНрдЧ рдереЛрдбреЗрд╕реЗ рдмрджрд▓рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛:

0xxxxxxx тАФ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдбрдордзреНрдпреЗ 1 рдмрд╛рдЗрдЯ, 2 рд▓рд╛рдВрдм рдореЛрдбрдордзреНрдпреЗ
11xxxxxx - 1 рдмрд╛рдЗрдЯ
100xxxxx xxxxxxxx - 2 рдмрд╛рдЗрдЯреНрд╕
101xxxxx xxxxxxxx xxxxxxxx - 3 рдмрд╛рдЗрдЯреНрд╕

рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ

рдЖрддрд╛ рджреЛрди-рдмрд╛рдЗрдЯ рд░реЗрдХреЙрд░реНрдбрдордзреНрдпреЗ рдПрдХ рдХрдореА рдЙрдкрд▓рдмреНрдз рдмрд┐рдЯ рдЖрд╣реЗ - рдХреЛрдб рдкреЙрдЗрдВрдЯ рдкрд░реНрдпрдВрдд 0x1FFFрдкрдг рдирд╛рд╣реА 0x3FFF. рддрдерд╛рдкрд┐, рддреЗ рдЕрджреНрдпрд╛рдк рдбрдмрд▓-рдмрд╛рдЗрдЯ UTF-8 рдХреЛрдбрдкреЗрдХреНрд╖рд╛ рд▓рдХреНрд╖рдгреАрдп рдореЛрдареЗ рдЖрд╣реЗ, рдмрд╣реБрддреЗрдХ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдЕрдЬреВрдирд╣реА рдмрд╕рддрд╛рдд, рд╕рд░реНрд╡рд╛рдд рд▓рдХреНрд╖рдгреАрдп рддреЛрдЯрд╛ рдмрд╛рд╣реЗрд░ рдкрдбрд▓рд╛ рдЖрд╣реЗ рд╣рд┐рд░рд╛рдЧрд╛рдирд╛ ╨╕ рдХрд╛рдЯрд╛рдХрд╛рдирд╛, рдЬрдкрд╛рдиреА рджреБрдГрдЦреА рдЖрд╣реЗрдд.

рд╣рд╛ рдирд╡реАрди рдХреЛрдб рдХрд╛рдп рдЖрд╣реЗ? 11xxxxxx? рд╣рд╛ 64 рд╡рд░реНрдгрд╛рдВрдЪрд╛ рдПрдХ рдЫреЛрдЯрд╛рд╕рд╛ "рд╕реНрдЯреЕрд╢" рдЖрд╣реЗ, рддреЛ рдЖрдордЪреНрдпрд╛ рдореБрдЦреНрдп рд╡рд░реНрдгрдорд╛рд▓рд╛рд▓рд╛ рдкреВрд░рдХ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдореА рддреНрдпрд╛рд▓рд╛ рд╕рд╣рд╛рдпрдХ рдореНрд╣рдЯрд▓реЗ (рд╕рд╣рд╛рдпреНрдпрдХ) рд╡рд░реНрдгрдорд╛рд▓рд╛. рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдмрджрд▓рддреЛ, рддреЗрд╡реНрд╣рд╛ рдЬреБрдиреНрдпрд╛ рд╡рд░реНрдгрдорд╛рд▓рд╛рдЪрд╛ рдПрдХ рднрд╛рдЧ рд╕рд╣рд╛рдпрдХ рдмрдирддреЛ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдореНрд╣реА ASCII рд╡рд░реВрди рд╕рд┐рд░рд┐рд▓рд┐рдХрд╡рд░ рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реЗ - рд╕реНрдЯреЕрд╢рдордзреНрдпреЗ рдЖрддрд╛ 64 рд╡рд░реНрдг рдЖрд╣реЗрдд рд▓реЕрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛, рд╕рдВрдЦреНрдпрд╛, рдЬрд╛рдЧрд╛ рдЖрдгрд┐ рд╕реНрд╡рд▓реНрдкрд╡рд┐рд░рд╛рдо (рдПрдПрд╕рд╕реАрдЖрдпрдЖрдп рдирд╕рд▓реЗрд▓реНрдпрд╛ рдордЬрдХреБрд░рд╛рдд рд╕рд░реНрд╡рд╛рдзрд┐рдХ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЕрдВрддрд░реНрднреВрдд рдХрд░рдгреЗ). ASCII рд╡рд░ рдкрд░рдд рдЬрд╛ - рдЖрдгрд┐ рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛рдЪрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдмрдиреЗрд▓.

рджреЛрди рдЕрдХреНрд╖рд░рд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдЖрдореНрд╣реА рдЕрдХреНрд╖рд░реЗ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдХрдореАрддрдХрдореА рдЦрд░реНрдЪрд╛рд╕рд╣ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдордЬрдХреВрд░ рд╣рд╛рддрд╛рд│реВ рд╢рдХрддреЛ (рд╡рд┐рд░рд╛рдордЪрд┐рдиреНрд╣реЗ рдмрд╣реБрддреЗрдХрджрд╛ ASCII рд╡рд░ рдкрд░рдд рдЬрд╛рддреАрд▓, рдкрд░рдВрддреБ рддреНрдпрд╛рдирдВрддрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдгрдорд╛рд▓рд╛рдордзреВрди рдЕрдиреЗрдХ рдЧреИрд░-ASCII рд╡рд░реНрдг рдорд┐рд│рддреАрд▓, рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рдкреБрдиреНрд╣рд╛ рд╕реНрд╡рд┐рдЪ рдХрд░рдд рдЖрд╣реЗ).

рдмреЛрдирд╕: рдЙрдк-рд╡рд░реНрдгрдорд╛рд▓рд╛ рдЙрдкрд╕рд░реНрдЧ рд▓рд╛рд╡рдгреЗ 11xxxxxx рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдСрдлрд╕реЗрдЯ рдЕрд╕рдгреЗ рдирд┐рд╡рдбрдгреЗ 0xC0, рдЖрдореНрд╣рд╛рд▓рд╛ CP1252 рд╕рд╣ рдЖрдВрд╢рд┐рдХ рд╕реБрд╕рдВрдЧрддрддрд╛ рдорд┐рд│рддреЗ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, CP1252 рдордзреНрдпреЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реЗ рдЕрдиреЗрдХ (рдкрд░рдВрддреБ рд╕рд░реНрд╡рдЪ рдирд╛рд╣реА) рдкрд╛рд╢реНрдЪрд╛рддреНрдп рдпреБрд░реЛрдкрд┐рдпрди рдордЬрдХреВрд░ UTF-C рдордзреНрдпреЗ рд╕рдорд╛рди рджрд┐рд╕рддреАрд▓.

рдпреЗрдереЗ, рддрдерд╛рдкрд┐, рдПрдХ рдЕрдбрдЪрдг рдЙрджреНрднрд╡рддреЗ: рдореБрдЦреНрдп рд╡рд░реНрдгрдорд╛рд▓рд╛рдордзреВрди рд╕рд╣рд╛рдпрдХ рдХрд╕реЗ рдорд┐рд│рд╡рд╛рдпрдЪреЗ? рдЖрдкрдг рд╕рдорд╛рди рдСрдлрд╕реЗрдЯ рд╕реЛрдбреВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ - рдЕрд░реЗрд░реЗ - рдпреЗрдереЗ рдпреБрдирд┐рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдЖрдзреАрдЪ рдЖрдордЪреНрдпрд╛ рд╡рд┐рд░реВрджреНрдз рдЦреЗрд│рдд рдЖрд╣реЗ. рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рд╡рд░реНрдгрдорд╛рд▓рд╛рдЪрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рдмреНрд▓реЙрдХрдЪреНрдпрд╛ рд╕реБрд░реВрд╡рд╛рддреАрд╕ рдирд╕рддреЛ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд░рд╢рд┐рдпрди рдХреЕрдкрд┐рдЯрд▓ тАЬрдПтАЭ рдордзреНрдпреЗ рдХреЛрдб рдЕрд╕рддреЛ 0x0410, рдЬрд░реА рд╕рд┐рд░рд┐рд▓рд┐рдХ рдмреНрд▓реЙрдХ рдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрддреЗ 0x0400). рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╕реНрдЯреЕрд╢рдордзреНрдпреЗ рдкрд╣рд┐рд▓реЗ 64 рд╡рд░реНрдг рдШреЗрддрд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рд╡рд░реНрдгрдорд╛рд▓рд╛рдЪреНрдпрд╛ рд╢реЗрдкрдЯреАрдЪреНрдпрд╛ рднрд╛рдЧрд╛рдЪрд╛ рдкреНрд░рд╡реЗрд╢ рдЧрдорд╛рд╡реВ рд╢рдХрддреЛ.

рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдореА рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рднрд┐рдиреНрди рднрд╛рд╖рд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд╣реА рдмреНрд▓реЙрдХреНрд╕рдордзреВрди рдЧреЗрд▓реЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдореБрдЦреНрдп рдПрдХрд╛рдордзреНрдпреЗ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдгрдорд╛рд▓рд╛рдЪрд╛ рдСрдлрд╕реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓рд╛. рд▓реЕрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛, рдЕрдкрд╡рд╛рдж рдореНрд╣рдгреВрди, рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдмреЗрд╕64 рдкреНрд░рдорд╛рдгреЗ рдкреБрдирд░реНрдХреНрд░рдорд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА.

рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ

рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢

рд╢реЗрд╡рдЯреА рдЖрдкрдг рдХрд╛рд╣реАрддрд░реА рд╕реБрдзрд╛рд░реВ рд╢рдХрддреЛ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдпрд╛.

рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рд╕реНрд╡рд░реВрдк 101xxxxx xxxxxxxx xxxxxxxx рдкрд░реНрдпрдВрдд рдХреНрд░рдорд╛рдВрдХ рдПрдиреНрдХреЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ 0x1FFFFF, рдЖрдгрд┐ рдпреБрдирд┐рдХреЛрдб рдЖрдзреА, рд╡рд╛рдЬрддрд╛ рд╕рдВрдкреЗрд▓ 0x10FFFF. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рд╢реЗрд╡рдЯрдЪрд╛ рдХреЛрдб рдкреЙрдЗрдВрдЯ рдореНрд╣рдгреВрди рджрд░реНрд╢рд╡рд┐рд▓рд╛ рдЬрд╛рдИрд▓ 10110000 11111111 11111111. рдореНрд╣рдгреВрди, рдЖрдкрдг рдЕрд╕реЗ рдореНрд╣рдгреВ рд╢рдХрддреЛ рдХреА рдЬрд░ рдкрд╣рд┐рд▓рд╛ рдмрд╛рдЗрдЯ рдлреЙрд░реНрдордЪрд╛ рдЕрд╕реЗрд▓ 1011xxxx (рдХреБрдареЗ xxxx 0 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд), рддрд░ рдпрд╛рдЪрд╛ рдЕрд░реНрде рдХрд╛рд╣реАрддрд░реА рд╡реЗрдЧрд│рд╛ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрдг рддреЗрдереЗ рдЖрдгрдЦреА 15 рд╡рд░реНрдг рдЬреЛрдбреВ рд╢рдХрддрд╛ рдЬреЗ рдПрдХрд╛ рдмрд╛рдЗрдЯрдордзреНрдпреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧрд╕рд╛рдареА рд╕рддрдд рдЙрдкрд▓рдмреНрдз рдЕрд╕рддрд╛рдд, рдкрд░рдВрддреБ рдореА рддреЗ рд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

рдЖрддрд╛ рддреЗ рдпреБрдирд┐рдХреЛрдб рдмреНрд▓реЙрдХреНрд╕ рдкрд╛рд╣реВ рдЬреНрдпрд╛рдВрдирд╛ рддреАрди рдмрд╛рдЗрдЯреНрд╕ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд. рдореВрд▓рднреВрддрдкрдгреЗ, рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╣реА рдЪреАрдиреА рд╡рд░реНрдг рдЖрд╣реЗрдд - рдкрд░рдВрддреБ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╢реА рдХрд╛рд╣реАрд╣реА рдХрд░рдгреЗ рдХрдареАрдг рдЖрд╣реЗ, рддреНрдпрд╛рдкреИрдХреА 21 рд╣рдЬрд╛рд░ рдЖрд╣реЗрдд. рдкрд░рдВрддреБ рд╣рд┐рд░рд╛рдЧрд╛рдирд╛ рдЖрдгрд┐ рдХрд╛рдЯрд╛рдХрд╛рдирд╛ рджреЗрдЦреАрд▓ рддреЗрдереЗ рдЙрдбреНрдбрд╛рдг рдХреЗрд▓реЗ - рдЖрдгрд┐ рдЖрддрд╛ рддреНрдпрд╛рдкреИрдХреА рдмрд░реЗрдЪ рдирд╛рд╣реАрдд, рджреЛрдирд╢реЗрдкреЗрдХреНрд╖рд╛ рдХрдореА. рдЖрдгрд┐, рдЖрдореНрд╣рд╛рд▓рд╛ рдЬрдкрд╛рдиреА рдЖрдард╡рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рддреЗрдереЗ рдЗрдореЛрдЬреА рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд (рдЦрд░рдВ рддрд░, рддреЗ рдпреБрдирд┐рдХреЛрдбрдордзреНрдпреЗ рдЕрдиреЗрдХ рдард┐рдХрд╛рдгреА рд╡рд┐рдЦреБрд░рд▓реЗрд▓реЗ рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рдореБрдЦреНрдп рдмреНрд▓реЙрдХ рд╢реНрд░реЗрдгреАрдд рдЖрд╣реЗрдд. 0x1F300 - 0x1FBFF). рдЬрд░ рддреБрдореНрд╣реА рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рддрд░ рдЖрддрд╛ рдЗрдореЛрдЬреА рдЖрд╣реЗрдд рдЬреЗ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рдХреЛрдб рдкреЙрдЗрдВрдЯреНрд╕рдордзреВрди рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЗрдореЛрдЬреА тАНтАНтАНрджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд 7 рдХреЛрдб рдЕрд╕рддрд╛рдд!), рдирдВрддрд░ рдкреНрд░рддреНрдпреЗрдХрд╛рд╡рд░ рддреАрди рдмрд╛рдЗрдЯреНрд╕ (рдПрдХрд╛ рдЪрд┐рдиреНрд╣рд╛рд╕рд╛рдареА 7├Ч3 = 21 рдмрд╛рдЗрдЯреНрд╕, рдПрдХ рднрдпрд╛рдирдХ рд╕реНрд╡рдкреНрди) рдЦрд░реНрдЪ рдХрд░рдгреЗ рдкреВрд░реНрдгрдкрдгреЗ рд▓рд╛рдЬрд┐рд░рд╡рд╛рдгреЗ рдЖрд╣реЗ.

рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдЗрдореЛрдЬреА, рд╣рд┐рд░рд╛рдЧрд╛рдирд╛ рдЖрдгрд┐ рдХрд╛рдЯрд╛рдХрд╛рдирд╛ рдпрд╛рдВрдЪреНрдпрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд╣реА рдирд┐рд╡рдбрдХ рд╢реНрд░реЗрдгреА рдирд┐рд╡рдбрддреЛ, рддреНрдпрд╛рдВрдирд╛ рдПрдХрд╛ рд╕рддрддрдЪреНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ рдкреБрдиреНрд╣рд╛ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рддреАрди рдРрд╡рдЬреА рджреЛрди рдмрд╛рдЗрдЯреНрд╕ рдореНрд╣рдгреВрди рдПрдиреНрдХреЛрдб рдХрд░рддреЛ:

1011xxxx xxxxxxxx

рдЙрддреНрддрдо: рд╡рд░ рдирдореВрдж рдХреЗрд▓реЗрд▓реЗ рдЗрдореЛрдЬреАрджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ, 7 рдХреЛрдб рдкреЙрдЗрдВрдЯреНрд╕рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓рд╛, UTF-8 рдордзреНрдпреЗ 25 рдмрд╛рдЗрдЯреНрд╕ рдШреЗрддреЛ рдЖрдгрд┐ рдЖрдореНрд╣реА рддреНрдпрд╛рдд рдмрд╕рддреЛ 14 (рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдб рдкреЙрдЗрдВрдЯрд╕рд╛рдареА рдиреЗрдордХреЗ рджреЛрди рдмрд╛рдЗрдЯреНрд╕). рддрд╕реЗ, Habr рдиреЗ рддреЗ рдкрдЪрд╡рдгреНрдпрд╛рд╕ рдирдХрд╛рд░ рджрд┐рд▓рд╛ (рдЬреБрдиреНрдпрд╛ рдЖрдгрд┐ рдирд╡реАрди рд╕рдВрдкрд╛рджрдХрд╛рдд рджреЛрдиреНрд╣реА), рдореНрд╣рдгреВрди рдорд▓рд╛ рддреЗ рдЪрд┐рддреНрд░рд╛рд╕рд╣ рдШрд╛рд▓рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ.

рдЪрд▓рд╛ рдЖрдгрдЦреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛. рдЬрд╕реЗ рдЖрдкрдг рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рддреЛ, рдореВрд▓рднреВрдд рд╡рд░реНрдгрдорд╛рд▓рд╛ рдореВрд▓рдд: рдЖрд╣реЗ рдЙрдЪреНрдЪ 6 рдмрд┐рдЯ, рдЬреЗ рдЖрдкрдг рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рддреЛ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдвреАрд▓ рдбреАрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЪрд┐рдиреНрд╣рд╛рдЪреНрдпрд╛ рдХреЛрдбрд▓рд╛ рдЪрд┐рдХрдЯрд╡рддреЛ. рдмреНрд▓реЙрдХрдордзреНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЪреАрдиреА рд╡рд░реНрдгрд╛рдВрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд 0x4E00 - 0x9FFF, рд╣реЗ рдПрдХрддрд░ рдмрд┐рдЯ 0 рдХрд┐рдВрд╡рд╛ 1 рдЖрд╣реЗ. рд╣реЗ рдлрд╛рд░ рд╕реЛрдпреАрдЪреЗ рдирд╛рд╣реА: рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рджреЛрди рдореВрд▓реНрдпрд╛рдВрдордзреАрд▓ рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╕рддрдд рдмрджрд▓рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ (рдореНрд╣рдгрдЬреЗ рддреАрди рдмрд╛рдЗрдЯ рдЦрд░реНрдЪ рдХрд░рд╛). рдкрд░рдВрддреБ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рд▓рд╛рдБрдЧ рдореЛрдбрдордзреНрдпреЗ, рдХреЛрдбрдордзреВрдирдЪ рдЖрдкрдг рд╢реЙрд░реНрдЯ рдореЛрдб рд╡рд╛рдкрд░реВрди рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрдгрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рдЬрд╛ рдХрд░реВ рд╢рдХрддреЛ (рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдпреБрдХреНрддреНрдпрд╛рдВрдирдВрддрд░, рд╣реЗ 10240 рдЖрд╣реЗ) - рдирдВрддрд░ рд╣рд╛рдпрд░реЛрдЧреНрд▓рд┐рдлреНрд╕рдЪреА рд╢реНрд░реЗрдгреА рдпреЗрдереЗ рдмрджрд▓реЗрд▓ 0x2600 - 0x77FF, рдЖрдгрд┐ рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдпрд╛ рд╕рдВрдкреВрд░реНрдг рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ, рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг 6 рдмрд┐рдЯреНрд╕ (21 рдкреИрдХреА) 0 рдЪреНрдпрд╛ рдмрд░реЛрдмрд░реАрдЪреЗ рдЕрд╕рддреАрд▓. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╣рд╛рдпрд░реЛрдЧреНрд▓рд┐рдлрдЪреЗ рдЕрдиреБрдХреНрд░рдо рдкреНрд░рддрд┐ рд╣рд╛рдпрд░реЛрдЧреНрд▓рд┐рдл рджреЛрди рдмрд╛рдЗрдЯреНрд╕ рд╡рд╛рдкрд░рддреАрд▓ (рдЬреЗ рдЗрддрдХреНрдпрд╛ рдореЛрдареНрдпрд╛ рд╢реНрд░реЗрдгреАрд╕рд╛рдареА рдЗрд╖реНрдЯрддрдо рдЖрд╣реЗ), рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╕реНрд╡рд┐рдЪреЗрд╕ рдХрд╛рд░рдгреАрднреВрдд.

рдкрд░реНрдпрд╛рдпреА рдЙрдкрд╛рдп: SCSU, BOCU-1

рдпреБрдирд┐рдХреЛрдб рддрдЬреНрдЮ, рд▓реЗрдЦрд╛рдЪреЗ рд╢реАрд░реНрд╖рдХ рдиреБрдХрддреЗрдЪ рд╡рд╛рдЪрд▓реНрдпрд╛рдирдВрддрд░, рдмрд╣реБрдзрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдЪреА рдЖрдард╡рдг рдХрд░реВрди рджреЗрдгреНрдпрд╛рдЪреА рдШрд╛рдИ рдХрд░рддреАрд▓ рдХреА рдереЗрдЯ рдпреБрдирд┐рдХреЛрдб рдорд╛рдирдХрд╛рдВрдордзреНрдпреЗ рдЖрд╣реЗ. рдпреБрдирд┐рдХреЛрдбрд╕рд╛рдареА рдорд╛рдирдХ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдпреЛрдЬрдирд╛ (SCSU), рдЬреЗ рд▓реЗрдЦрд╛рдд рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкрджреНрдзрддреАрдЪреЗ рд╡рд░реНрдгрди рдХрд░рддреЗ.

рдореА рдкреНрд░рд╛рдорд╛рдгрд┐рдХрдкрдгреЗ рдХрдмреВрд▓ рдХрд░рддреЛ: рдореА рдорд╛рдЭрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдд рдЦреВрдк рдордЧреНрди рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░рдЪ рдорд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдмрджреНрджрд▓ рдХрд│рд▓реЗ. рдорд▓рд╛ рддреНрдпрд╛рдмрджреНрджрд▓ рд╕реБрд░рд╡рд╛рддреАрдкрд╛рд╕реВрди рдорд╛рд╣рд┐рддреА рдЕрд╕рддреЗ рддрд░ рдХрджрд╛рдЪрд┐рдд рдореА рдорд╛рдЭрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рди рдорд╛рдВрдбрддрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рдЕрд╕рддрд╛.

рдордиреЛрд░рдВрдЬрдХ рдЧреЛрд╖реНрдЯ рдЕрд╢реА рдЖрд╣реЗ рдХреА SCSU рдорд╛рдЭреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдХрд▓реНрдкрдирд╛рдВрд╢реА рдорд┐рд│рддреНрдпрд╛рдЬреБрд│рддреНрдпрд╛ рдХрд▓реНрдкрдирд╛ рд╡рд╛рдкрд░рддреЗ (тАЬрд╡рд░реНрдгрдорд╛рд▓рд╛тАЭ рдпрд╛ рд╕рдВрдХрд▓реНрдкрдиреЗрдРрд╡рдЬреА рддреЗ тАЬрд╡рд┐рдВрдбреЛрдЬтАЭ рд╡рд╛рдкрд░рддрд╛рдд, рдЖрдгрд┐ рдорд╛рдЭреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдмрд░реЗрдЪ рдХрд╛рд╣реА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд). рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдЪреЗ рддреЛрдЯреЗ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд: рддреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧрдкреЗрдХреНрд╖рд╛ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреНрдпрд╛ рдереЛрдбреЗ рдЬрд╡рд│ рдЖрд╣реЗ. рд╡рд┐рд╢реЗрд╖рддрдГ, рдорд╛рдирдХ рдЕрдиреЗрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкрджреНрдзрддреА рджреЗрддреЗ, рдкрд░рдВрддреБ рдЗрд╖реНрдЯрддрдо рдХрд╕реЗ рдирд┐рд╡рдбрд╛рдпрдЪреЗ рддреЗ рд╕рд╛рдВрдЧрдд рдирд╛рд╣реА - рдпрд╛рд╕рд╛рдареА, рдПрдиреНрдХреЛрдбрд░рдиреЗ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рд╣реЗрд░рд┐рд╕реНрдЯрд┐рдХреНрд╕ рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЪрд╛рдВрдЧрд▓реЗ рдкреЕрдХреЗрдЬрд┐рдВрдЧ рддрдпрд╛рд░ рдХрд░рдгрд╛рд░рд╛ SCSU рдПрдиреНрдХреЛрдбрд░ рдорд╛рдЭреНрдпрд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЖрдгрд┐ рдЕрдзрд┐рдХ рдЕрд╡рдЬрдб рдЕрд╕реЗрд▓.

рддреБрд▓рдиреЗрд╕рд╛рдареА, рдореА SCSU рдЪреА рддреБрд▓рдиреЗрдиреЗ рд╕реЛрдкреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА JavaScript рд╡рд░ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реА - рдХреЛрдб рд╡реНрд╣реЙрд▓реНрдпреВрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рддреЗ рдорд╛рдЭреНрдпрд╛ UTF-C рд╢реА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рдпреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рд╣реЛрддреЗ, рдкрд░рдВрддреБ рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдкрд░рд┐рдгрд╛рдо рджрд╣рд╛рдкрдЯ рдЯрдХреНрдХреЗ рд╡рд╛рдИрдЯ рд╣реЛрддрд╛ (рдХрдзреАрдХрдзреА рддреЗ рддреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕реВ рд╢рдХрддреЗ, рдкрд░рдВрддреБ рдЬрд╛рд╕реНрдд рдирд╛рд╣реА). рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╣рд┐рдмреНрд░реВ рдЖрдгрд┐ рдЧреНрд░реАрдХрдордзреАрд▓ рдордЬрдХреВрд░ UTF-C рджреНрд╡рд╛рд░реЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реЗ рд╣реЛрддреЗ SCSU рдкреЗрдХреНрд╖рд╛ 60% рдЪрд╛рдВрдЧрд▓реЗ (рдХрджрд╛рдЪрд┐рдд рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдХреНрд╖рд░рд╛рдВрдореБрд│реЗ).

рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ, рдореА рдЬреЛрдбреЗрди рдХреА SCSU рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдпреБрдирд┐рдХреЛрдбрдЪреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдгреНрдпрд╛рдЪрд╛ рджреБрд╕рд░рд╛ рдорд╛рд░реНрдЧ рджреЗрдЦреАрд▓ рдЖрд╣реЗ - BOCU-1, рдкрд░рдВрддреБ рд╣реЗ MIME рд╕реБрд╕рдВрдЧрддрддреЗрд╕рд╛рдареА (рдЬреНрдпрд╛рдЪреА рдорд▓рд╛ рдЧрд░рдЬ рдирд╡реНрд╣рддреА) рдЙрджреНрджреЗрд╢ рдЖрд╣реЗ рдЖрдгрд┐ рдПрдиреНрдХреЛрдбрд┐рдВрдЧрд╕рд╛рдареА рдереЛрдбрд╛ рд╡реЗрдЧрд│рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рдШреЗрддреЗ. рдореА рддреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рднрд╛рд╡реАрддреЗрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗрд▓реЗ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдорд▓рд╛ рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рддреЗ SCSU рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдирд╛рд╣реА.

рд╕рдВрднрд╛рд╡реНрдп рд╕реБрдзрд╛рд░рдгрд╛

рдореА рд╕рд╛рджрд░ рдХреЗрд▓реЗрд▓рд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдбрд┐рдЭрд╛рдЗрдирдиреБрд╕рд╛рд░ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдирд╛рд╣реА (рдХрджрд╛рдЪрд┐рдд рдорд╛рдЭреА рдЙрджреНрджрд┐рд╖реНрдЯреЗ рдпреБрдирд┐рдХреЛрдб рдХрдиреНрд╕реЛрд░реНрдЯрд┐рдпрдордЪреНрдпрд╛ рдЙрджреНрджрд┐рд╖реНрдЯрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрдЧрд│реА рдЖрд╣реЗрдд). рдореА рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ рдХреА рд╣реЗ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рдПрдХрд╛ рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ (рдЙрдкрд╕рд░реНрдЧрд╛рдЪреНрдпрд╛ рдЭрд╛рдбрд╛рдордзреНрдпреЗ рдмрд╣реБрднрд╛рд╖рд┐рдХ рд╢рдмреНрджрдХреЛрд╢ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ), рдЖрдгрд┐ рддреНрдпрд╛рддреАрд▓ рдХрд╛рд╣реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЗрддрд░ рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА рдпреЛрдЧреНрдп рдирд╕рддреАрд▓. рдкрд░рдВрддреБ рд╣реЗ рдорд╛рдирдХ рдирд╛рд╣реА рд╣реЗ рдПрдХ рдкреНрд▓рд╕ рдЕрд╕реВ рд╢рдХрддреЗ - рддреБрдордЪреНрдпрд╛ рдЧрд░рдЬреЗрдиреБрд╕рд╛рд░ рддреБрдореНрд╣реА рддреНрдпрд╛рдд рд╕рд╣рдЬ рдмрджрд▓ рдХрд░реВ рд╢рдХрддрд╛.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рддреБрдореНрд╣реА рд░рд╛рдЬреНрдпрд╛рдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдК рд╢рдХрддрд╛, рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдХреЛрдбрд┐рдВрдЧ рдмрдирд╡реВ рд╢рдХрддрд╛ - рдлрдХреНрдд рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЕрдкрдбреЗрдЯ рдХрд░реВ рдирдХрд╛ offs, auxOffs ╨╕ is21Bit рдПрдиреНрдХреЛрдбрд░ рдЖрдгрд┐ рдбреАрдХреЛрдбрд░рдордзреНрдпреЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╕рдорд╛рди рд╡рд░реНрдгрдорд╛рд▓реЗрддреАрд▓ рд╡рд░реНрдгрд╛рдВрдЪреЗ рдЕрдиреБрдХреНрд░рдо рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рдкреЕрдХ рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╕рдВрджрд░реНрднрд╛рдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХрд░реВрди, рд╕рдорд╛рди рд╡рд░реНрдг рдиреЗрд╣рдореА рд╕рдорд╛рди рдмрд╛рдЗрдЯреНрд╕рд╕рд╣ рдПрдиреНрдХреЛрдб рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓ рдпрд╛рдЪреА рд╣рдореА рджрд┐рд▓реА рдЬрд╛рдИрд▓.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдкрдг рдбреАрдлреЙрд▓реНрдЯ рд╕реНрдерд┐рддреА рдмрджрд▓реВрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖реЗрдд рдПрдиреНрдХреЛрдбрд░ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛ - рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд░рд╢рд┐рдпрди рдордЬрдХреВрд░рд╛рдВрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрди, рдПрдиреНрдХреЛрдбрд░ рдЖрдгрд┐ рдбреАрдХреЛрдбрд░ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рд╕реЗрдЯ рдХрд░рд╛ offs = 0x0400 ╨╕ auxOffs = 0. рд╣реЗ рд╡рд┐рд╢реЗрд╖рддрдГ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдореЛрдбрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЕрд░реНрдердкреВрд░реНрдг рдЖрд╣реЗ. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рд╣реЗ рдЬреБрдиреЗ рдЖрда-рдмрд┐рдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рд╕рд░реНрд╡ рдпреБрдирд┐рдХреЛрдбрдордзреВрди рд╡рд░реНрдг рдШрд╛рд▓рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп.

рдЖрдзреА рдЙрд▓реНрд▓реЗрдЦ рдХреЗрд▓реЗрд▓рд╛ рдЖрдгрдЦреА рдПрдХ рджреЛрд╖ рдореНрд╣рдгрдЬреЗ UTF-C рдордзреНрдпреЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдореЛрдареНрдпрд╛ рдордЬрдХреБрд░рд╛рдд рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдмрд╛рдЗрдЯрдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрдг рд╕реАрдорд╛ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рджреНрд░реБрдд рдорд╛рд░реНрдЧ рдирд╛рд╣реА. рдЬрд░ рддреБрдореНрд╣реА рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрдлрд░рдордзреВрди рд╢реЗрд╡рдЯрдЪреЗ, 100 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛рдкрд▓реЗ рддрд░, рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдЪрд░рд╛ рдорд┐рд│рдгреНрдпрд╛рдЪрд╛ рдзреЛрдХрд╛ рдЖрд╣реЗ рдЬреНрдпрд╛рд╕рд╣ рддреБрдореНрд╣реА рдХрд╛рд╣реАрд╣реА рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдорд▓реНрдЯреА-рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд▓реЙрдЧ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд╣реЗ рджреБрд░реБрд╕реНрдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдмрд╛рдЗрдЯ 0xBF рдкреНрд░рдердо рдмрд╛рдЗрдЯ рдореНрд╣рдгреВрди рдХрдзреАрд╣реА рджрд┐рд╕реВ рдирдпреЗ (рдкрд░рдВрддреБ рджреБрд╕рд░рд╛ рдХрд┐рдВрд╡рд╛ рддрд┐рд╕рд░рд╛ рдЕрд╕реВ рд╢рдХрддреЛ). рдореНрд╣рдгреВрди, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд░рддрд╛рдирд╛, рдЖрдкрдг рдЕрдиреБрдХреНрд░рдо рдШрд╛рд▓реВ рд╢рдХрддрд╛ 0xBF 0xBF 0xBF рдкреНрд░рддреНрдпреЗрдХ, рдореНрд╣рдгрд╛, 10 KB - рдордЧ, рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реАрдорд╛ рд╢реЛрдзрд╛рдпрдЪреА рдЕрд╕реЗрд▓, рддрд░ рд╕рдорд╛рди рдорд╛рд░реНрдХрд░ рд╕рд╛рдкрдбреЗрдкрд░реНрдпрдВрдд рдирд┐рд╡рдбрд▓реЗрд▓рд╛ рддреБрдХрдбрд╛ рд╕реНрдХреЕрди рдХрд░рдгреЗ рдкреБрд░реЗрд╕реЗ рдЕрд╕реЗрд▓. рд╢реЗрд╡рдЯрдЪреЗ рдЕрдиреБрд╕рд░рдг 0xBF рдкрд╛рддреНрд░рд╛рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдЕрд╕рд▓реНрдпрд╛рдЪреА рд╣рдореА рджрд┐рд▓реА рдЬрд╛рддреЗ. (рдбреАрдХреЛрдбрд┐рдВрдЧ рдХрд░рддрд╛рдирд╛, рддреАрди рдмрд╛рдЗрдЯреНрд╕рдЪрд╛ рд╣рд╛ рдХреНрд░рдо рдЕрд░реНрдерд╛рддрдЪ рджреБрд░реНрд▓рдХреНрд╖рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.)

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА

рдЖрдкрдг рдЖрддрд╛рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЕрднрд┐рдирдВрджрди! рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рддреБрдореНрд╣реА, рдорд╛рдЭреНрдпрд╛рдкреНрд░рдорд╛рдгреЗрдЪ, рдпреБрдирд┐рдХреЛрдбрдЪреНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрдмрджреНрджрд▓ рдХрд╛рд╣реАрддрд░реА рдирд╡реАрди (рдХрд┐рдВрд╡рд╛ рддреБрдордЪреА рд╕реНрдореГрддреА рддрд╛рдЬреА) рд╢рд┐рдХрд▓реА рдЕрд╕реЗрд▓.

рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ
рдбреЗрдореЛ рдкреГрд╖реНрда. рд╣рд┐рдмреНрд░реВрдЪреЗ рдЙрджрд╛рд╣рд░рдг UTF-8 рдЖрдгрд┐ SCSU рдпрд╛ рджреЛрдиреНрд╣реАрдВрд╡рд░реАрд▓ рдлрд╛рдпрджреЗ рджрд░реНрд╢рд╡рд┐рддреЗ.

рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реЗ рд╕рдВрд╢реЛрдзрди рд╣реЗ рдорд╛рдирдХрд╛рдВрдЪреЗ рдЕрддрд┐рдХреНрд░рдордг рдорд╛рдирд▓реЗ рдЬрд╛рдК рдирдпреЗ. рддрдерд╛рдкрд┐, рдореА рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдорд╛рдЭреНрдпрд╛ рдХрд╛рдорд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрдмрджреНрджрд▓ рд╕рдорд╛рдзрд╛рдиреА рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдореА рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╢реА рдЖрдирдВрджреА рдЖрд╣реЗ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рд╛: рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдорд┐рдирд┐рдлрд╛рдЗрдб JS рд▓рд╛рдпрдмреНрд░рд░реАрдЪреЗ рд╡рдЬрди рдлрдХреНрдд 1710 рдмрд╛рдЗрдЯреНрд╕ рдЕрд╕рддреЗ (рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ рдХреЛрдгрддреЗрд╣реА рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдирд╕рддреЗ). рдореА рд╡рд░ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рддрд┐рдЪреЗ рдХрд╛рд░реНрдп рдпреЗрдереЗ рдЖрдврд│реВ рд╢рдХрддреЗ рдбреЗрдореЛ рдкреГрд╖реНрда (рддреЗрдереЗ рдордЬрдХреВрд░рд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рджреЗрдЦреАрд▓ рдЖрд╣реЗ рдЬреНрдпрд╛рд╡рд░ рддреНрдпрд╛рдЪреА UTF-8 рдЖрдгрд┐ SCSU рд╢реА рддреБрд▓рдирд╛ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ).

рд╢реЗрд╡рдЯреА, рдореА рдкреБрдиреНрд╣рд╛ рдПрдХрджрд╛ UTF-C рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдХрдбреЗ рд▓рдХреНрд╖ рд╡реЗрдзреВрди рдШреЗрдИрди рддреЛ рдпреЛрдЧреНрдп рдирд╛рд╣реА:

  • рдЬрд░ рддреБрдордЪреНрдпрд╛ рдУрд│реА рдкреБрд░реЗрд╢рд╛ рд▓рд╛рдВрдм рдЕрд╕рддреАрд▓ (100-200 рд╡рд░реНрдгрд╛рдВрдкрд░реНрдпрдВрдд). рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдкрдг рдбрд┐рдлреНрд▓реЗрдЯ рд╕рд╛рд░рдЦреНрдпрд╛ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ.
  • рдЬрд░ рддреБрд▓рд╛ рдЧрд░рдЬ рдЕрд╕реЗрд▓ ASCII рдкрд╛рд░рджрд░реНрд╢рдХрддрд╛, рдореНрд╣рдгрдЬреЗ, рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЕрдиреБрдХреНрд░рдорд╛рдВрдордзреНрдпреЗ рдореВрд│ рд╕реНрдЯреНрд░рд┐рдВрдЧрдордзреНрдпреЗ рдирд╕рд▓реЗрд▓реЗ ASCII рдХреЛрдб рдирд╕рддрд╛рдд. рдЬрд░, рддреГрддреАрдп-рдкрдХреНрд╖ API рд╕рд╣ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдирд╛ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдирд╛) рдЖрдкрдг рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдо рдмрд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рдЕрдореВрд░реНрдд рд╕рдВрдЪрд╛рдЪреНрдпрд╛ рд░реВрдкрд╛рдд рдкрд╛рд╕ рдХреЗрд▓реНрдпрд╛рд╕, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореНрд╣рдгреВрди рдирд╛рд╣реА рддрд░ рдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЯрд╛рд│рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдЕрдиреНрдпрдерд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЕрд╕реБрд░рдХреНрд╖рд╛ рдорд┐рд│рдгреНрдпрд╛рдЪрд╛ рдзреЛрдХрд╛ рдЖрд╣реЗ.
  • рдЖрдкрдг рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдСрдлрд╕реЗрдЯрд╡рд░ рд╡рд░реНрдг рд╕реАрдорд╛ рджреНрд░реБрддрдкрдгреЗ рд╢реЛрдзрдгреНрдпрд╛рдд рд╕рдХреНрд╖рдо рд╣реЛрдК рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬреЗрд╡реНрд╣рд╛ рдУрд│реАрдЪрд╛ рднрд╛рдЧ рдЦрд░рд╛рдм рд╣реЛрддреЛ). рд╣реЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдкрд░рдВрддреБ рдХреЗрд╡рд│ рд╕реБрд░реБрд╡рд╛рддреАрдкрд╛рд╕реВрдирдЪ рдУрд│ рд╕реНрдХреЕрди рдХрд░реВрди (рдХрд┐рдВрд╡рд╛ рдорд╛рдЧреАрд▓ рд╡рд┐рднрд╛рдЧрд╛рдд рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рд▓рд╛рдЧреВ рдХрд░реВрди).
  • рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЪреНрдпрд╛ рд╕рд╛рдордЧреНрд░реАрд╡рд░ рддреНрд╡рд░реАрдд рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ (рддреНрдпрд╛рдВрдЪреА рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рд╛, рддреНрдпрд╛рддреАрд▓ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢реЛрдзрд╛, рдПрдХрддреНрд░ рдХрд░рд╛). рдпрд╛рд╕рд╛рдареА рдкреНрд░рдердо рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдбреАрдХреЛрдб рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ UTF-C UTF-8 рдкреЗрдХреНрд╖рд╛ рд╣рд│реВ рдЕрд╕реЗрд▓ (рдкрд░рдВрддреБ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдордкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд╡рд╛рди). рд╕рдорд╛рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдиреЗрд╣рдореА рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реА рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдбреАрдХреЛрдбрд┐рдВрдЧрдЪреА рдЕрдЪреВрдХ рддреБрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА рдЖрдгрд┐ рдмрд╛рдЗрдЯ-рдмрд╛рдп-рдмрд╛рдЗрдЯ рдЖрдзрд╛рд░рд╛рд╡рд░ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.

рдЕрджреНрдпрддрдирд┐рдд рдХрд░рд╛: рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЯрд╛рдпреЛрдорд┐рдЪ рдЦрд╛рд▓реАрд▓ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ UTF-C рдЪреНрдпрд╛ рд▓рд╛рдЧреВ рдорд░реНрдпрд╛рджрд╛ рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХрд░рдгрд╛рд░рд╛ рдЖрд▓реЗрдЦ рдкреЛрд╕реНрдЯ рдХреЗрд▓рд╛. рд╣реЗ рджрд░реНрд╢рд╡рд┐рддреЗ рдХреА рдЬреЛрдкрд░реНрдпрдВрдд рдкреЕрдХ рдХреЗрд▓реЗрд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд╣рд╛рди рдЖрд╣реЗ рддреЛрдкрд░реНрдпрдВрдд UTF-C рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо (LZW рдЪреЗ рднрд┐рдиреНрдирддрд╛) рдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд╣реЗ. ~резрекреж рд╡рд░реНрдг (рддрдерд╛рдкрд┐, рдореА рд▓рдХреНрд╖рд╛рдд рдШреЗрддреЛ рдХреА рддреБрд▓рдирд╛ рдПрдХрд╛ рдордЬрдХреБрд░рд╛рд╡рд░ рдХреЗрд▓реА рдЧреЗрд▓реА рд╣реЛрддреА; рдЗрддрд░ рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рдкрд░рд┐рдгрд╛рдо рднрд┐рдиреНрди рдЕрд╕реВ рд╢рдХрддреЛ).
рджреБрд╕рд░реА рдмрд╛рдИрдХ: рдЖрдореНрд╣реА рдпреБрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ UTF-30 рдкреЗрдХреНрд╖рд╛ 60-8% рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛