á¡áááºá áááºááẠdeveloper áá
áºáŠážááŒá
áºááŒá®ážá áááºááẠáá¯ááºáá¶áá«ááºááᯠááœá±ážáá»ááºááẠáá¬áááºááŸáá·áº áááºááá¯ááºáá±ááá«áá áá°áá®áá¯ááºááẠá¡ááŒá²áááºážáá®ážáá«áž ááŸááºáááºáá±á¬ ááŒá±ááŸááºážáá»ááºááŒá
áºáááºá áááá»áá±á¬ááá¯ááºá
á¬ážááŒá¯áááºážáááºážááẠáááºá
ááºá¡ááŒá±á¬ááºážá¡áá¬áá±á«áºááœááºáá°áááºáááºá ááá¯á·áá±á¬áº áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á€áá±áá¬ááœááºáááºáž universal á¡ááŒá±áá
áºáá¯ááŸáááẠ- UTF-8á áááºážááŸáá·áº áááºáááºá áá±á¬ááºážáá±á¬á¡áá»ááºááŸá¬ áááºážááẠááá·áºá¡á¬áž ááœá±áá¯ááºááŒá±ážáá» áááŸááá² áá°áá®áá¯áẠá
á¬áá¯á¶ážá¡á¬ážáá¯á¶ážááᯠáá¯á¶ážááá¯ááºá
á±ááŒááºáž ááŒá
áºáááºá á¡áááºáž ááá
á¹á
á¡áá»á¬ážá
á¯ááœáẠbytes áá»á¬ážáááºá ááŸááºáá«áááºá áááºáááºá¡áá¹ááá¬ááẠááá¯áá¯á¶ážáá±á¬áá¬áá¬á
áá¬ážáá»á¬ážá¡ááœááºá "á¡ááœááºá¡áá»áœá¶" ááẠá¡áááºážáá¯á¶áž á
á¬áá¯á¶ážáá
áºáá¯á¶ážáá»áŸáẠááŸá
áºááá¯ááº. áá»áœááºá¯ááºááá¯á·ááᯠáááá¯ááºáá±á¬ á
á¬áá¯á¶áž 256 áá¯á¶ážáᬠááá·áºáááºáá¬ážááá·áº áááá¯ááºážááááºáá®áá¯ááºáá»á¬ážááᯠáááŒááºáá² ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºááá¯ááºáá«ááá¬ážá
á¡á±á¬ááºááœáẠá€áá±ážááœááºážááá¯ááŒá±ááá¯ááẠáá»áœááºá¯ááºáááŒáá¯ážáááºážááŸá¯ááŸáá·áº áááºážááŸá®ážáá»áœááºážáááºá
á±ááẠá¡ááá¯ááŒá¯ááŒá®áž UTF-8 ááœáẠáááºáá±á¬ááºážááŒááºážáááá·áºáá² ááá¹áá¬á·áá¬áá¬á
áá¬ážá¡áá»á¬ážá
á¯ááœáẠááá¯ááºážáá»á¬ážááᯠááááºážáááºážááá¯ááºá
á±ááá·áº á¡áá±á¬áºáá±ážááá¯ážááŸááºážáá±á¬ á¡ááºáááá¯áá®áááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡ááá¯ááŒá¯áá«áááºá
ááŸááºážáááºážáá»ááºá áá»áœááºá¯ááºááẠá¡áá±ážááŒá®ážáá±á¬ ááŒáá¯áááºááŸá¬áá°ááŸá¯á¡áá»áá¯á·ááᯠáá»ááºáá»ááºážááŒá¯áá¯ááºáá«áááº- áá±á¬áºááŒáá¬ážáá±á¬ááŒá±ááŸááºážáá»ááºááᯠUTF-8 á¡ááœáẠuniversal á¡á á¬ážááá¯ážá¡ááŒá ẠááááºážááŸááºážáá«ááááºážááẠáá»ááºážááŒá±á¬ááºážáá±á¬ááá á¹á áááºáá»á¬ážá á¬áááºážááœááºáᬠááá·áºáá»á±á¬áºááẠ(áááºážááá¯á·ááᯠá¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáááº) ááŸáá·áº ááŒááºáá¡ááœá²á·á¡á ááºáž API áá»á¬áž (áááºážá¡ááŒá±á¬ááºážááá¯ááẠááááá±á¬) ááŸáá·áº áá¯á¶á·ááŒááºáááºá¡ááœáẠáááºááá·áºá¡ááŒá±á¡áá±ááœááºáá»áŸ á¡áá¯á¶ážááŒá¯ááá·áºáááºááá¯ááºáá«á á¡áá»á¬ážá¡á¬ážááŒáá·áºá áá±áá¯áá»áááºááœááºáá»ááºáá»á¯á¶á·ááŒááºážááá¯ááºáᬠá¡ááºáááá¯áá®áááºáá»á¬áž (á¥ááá¬á deflate) ááẠá á¬áá¬ážáá±áá¬á¡ááŒá±á¬ááºá¡ááŒá¬ážááᯠáá»á áºáá áºááááºáááºážá áœá¬ ááááºážáááºážáááºá¡ááœáẠááá·áºáá»á±á¬áºáááºá ááá¯á·á¡ááŒááºá áá»áœááºá¯ááºáááŒá±ááŸááºážáá»ááºáááºáá®ážááŒááºážáá¯ááºáááºážá ááºááœááºá áá°áá®áá±á¬ááŒá¿áá¬ááá¯ááŒá±ááŸááºážáá±ážááá·áº Unicode ááœáẠááŸáááŒá®ážáá¬ážá á¶ááŸá¯ááºážáá áºáá¯ááᯠáá»áœááºá¯ááºááœá±á·ááŸááá²á·ááẠ- áááºážááẠá¡áááºážáááºááá¯ááá¯ááŸá¯ááºááœá±ážááẠ(áááŒá¬ááááá¯áááᯠááá¯ááá¯ážáááº) ááá¯á·áá±á¬áº áááºážááẠáááºáá¶áá¬ážáá¯á¶áá¬ááá áá°ážáá±á«áºááŸá¬á¡áá°á áá°á·á¡ááŒá±á¬ááºážáááºáž ááŒá±á¬ááŒáááºá
áá°áá®áá¯ááºááŸáá·áº UTF-8 á¡ááŒá±á¬ááºáž
á¡á ááŒá¯áááºá áááºážááẠá¡áááºá¡áá¬ááŸáá·áº áááºáááºáá±á¬ á áá¬ážáá¯á¶ážá¡áááºážáááºáá»áŸáᬠááŒá áºáááºá áá°áá®áá¯áẠО UTF-8.
áááºááááá·áºá¡ááá¯ááºáž 8-bit áá¯ááºáá¶áá«ááºáá»á¬ážááẠáá°ááŒáá¯ááºáá»á¬ážáá²á·áááºá áááºážááá¯á·ááŸáá·áºá¡áá°á á¡áá¬á¡á¬ážáá¯á¶ážááẠááá¯ážááŸááºážáááº- 256 á¡áá¹ááá¬áá»á¬ážááᯠ0 á០255 á¡áá áá¶áá«ááºáá»á¬ážááŒáá·áº áá±ááœááºááá¯ááºááŒá®áž 0 á០255 á០ááááºážáá»á¬ážááᯠone byte á¡ááŒá ẠáááºááŸá¬ážá áœá¬ ááá¯ááºá á¬ážááŒá¯ááá¯ááºáááºá á¡á ááŸááŒááºááœá¬ážáá«áá ASCII áá¯ááºááŒá±á¬ááºážááŒááºážááẠ7 bits ááœáẠáá¯á¶ážáááá·áºáááºáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážá byte ááá¯ááºá á¬ážááŒá¯ááŸá¯ááœáẠá¡áááºááŸá¬ážáá¯á¶áž bit ááẠáá¯áááŒá áºááŒá®áž 8-bit áá¯ááºáá¶áá«ááºá¡áá»á¬ážá á¯ááẠáááºážááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºááẠ(áááºážááá¯á·ááẠ"á¡áááº" ááœááºáá¬ááœá²ááŒá¬ážáá«áááºá á¡áá°ážááŒá¬ážáá¯á¶ážáá±á¬ á¡ááá¯ááºážááẠáá áºáá¯ááŒá áºáááºá)
áá°áá®áá¯ááºááẠá¡ááá¯áá« áá¯ááºáá¶áá«ááºáá»á¬ážááŸáá·áº áááºááá¯á·ááœá¬ááŒá¬ážááááºážá áááºážááŸáá·áº á¡áááºááŒá±á¬áá·áº á€áá»áŸáá±á¬áẠáááá»áá±á¬ ááá¯ááºá á¬ážááŒá¯ááŸá¯áá»á¬áž áááºá ááºáá±ááááºáž - UTF-8á UTF-16 (BE ááŸáá·áº LE), UTF-32? á¡á²áá«ááᯠá áá áºááá» ááœá²ááŒáá·áºáá¡á±á¬ááºá
á¡ááŒá±áá¶áá°áá®áá¯ááºá
á¶ááŸá¯ááºážááẠá¡áá¹ááá¬áá»á¬áž (á¡áá»áá¯á·ááá
á¹á
áá»á¬ážááœááºá á
á¬áá¯á¶ážáá
áºáá¯á¶ážáá»ááºážá
á®á á¡á
áááºá¡ááá¯ááºážáá»á¬áž) ááŸáá·áº áááºážááá¯á·á áá¶áá«ááºáá»á¬ážááŒá¬áž á
á¬áá±ážá
á¬áá°ááá¯áᬠáá±á¬áºááŒáááºá á€á
á¶ááŸá¯ááºážááœáẠááŒá
áºááá¯ááºááŒá±ááŸááá±á¬ ááááºážááááºážáá»á¬áž á¡áá»á¬ážá¡ááŒá¬ážááŸááá«áááºá 0x00
ááá¯á· 0x10FFFF
(á,ááá,ááá áá»ááº)á á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠááááºážááááºážáá
áºáá¯ááᯠááááºážááŸááºáá
áºáá¯á¡ááŒá
Ạáá¬ážááá¯áá«á 1 ááá¯á·ááá¯áẠ114 bytes ááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠááá¯á¶áá±á¬ááºáá«á áá»áœááºá¯ááºááá¯á·á áááá¯áááºáá¬áá»á¬ážááẠáá¯á¶ážááá¯ááºáá¶áá«ááºáá»á¬ážááŒáá·áº á¡áá¯ááºáá¯ááºááẠá¡ááœááºáá®ááá¯ááºážáá¯ááºáá¬ážááŒááºáž áááŸááá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá
á¬áá¯á¶ážáá
áºáá¯á¶ážáá»áŸáẠ112 bytes á¡áá á¡áá¯á¶ážááŒá¯ááááºááŒá
áºáá«áááºá áááºážááẠUTF-1 ááŒá
áºáááºá ááá¯á·áá±á¬áº á€áá±á¬áºáááºááẠáá±áááºážá
á¬ážááŒááºážáááŸáááá·áºá¡ááœáẠဠ"ááŒá¯ááºážáá®ážááŸá¯" ááŒá±á¬áá·áº á¡ááá¡áá»ááŒá
áºáááºá
áá¶áá±á¬ááºážáá±á¬ááºáá
áœá¬á Unicode á¡ááœááºážááŸá á¡áá¹ááá¬áá»á¬ážá á¡á
ááºááá¯ááºááẠáá»áááºážááá¯ááºáá«á áá°ááá¯á·áá²á· á¡á
á¯á¡á
ááºáž áá
áºáá¯áá¯á¶ážááᯠáá ááœá²ááá±áá¬ááºáá»á¬áž"á áá
áºáá¯á
á®ááœáẠ65536 (0x10000
) "áá¯ááºá¡ááŸááºáá»á¬ážâ á€áá±áá¬ááœáẠ"áá¯ááºá¡ááŸááº" á ááá±á¬ááá¬ážááẠááá¯ážááŸááºážáá«áááºá á¡áá¹ááá¬áá¶áá«ááºáá°áá®áá¯ááºááŒáá·áº áááºááŸááºáá±ážáááºá ááá¯á·áá±á¬áº á¡áááºááœááºáá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºáž áá°áá®áá¯ááºááœáẠá¡áá¹ááá¬áá
áºáá¯á¶ážáá»ááºážá
á®ááᯠáá±ááœááºáá¯á¶áá¬áá áááºážááá¯á·á á¡á
áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áº áááºáá±á¬ááºááŸá¯á¡ááŸááºá¡áá¬ážáá»á¬ážááá¯áááºáž (ááá«ááá¶ááœáẠáááºááá·áºáá¶áá«ááºááŸáá·áºáá»áŸ ááááºááá¯ááºáá« - ááá¯á¡áá»áááºááœáẠááŒá
áºááá¯ááºáá±á¬áºáááºáž áá»áœááºá¯ááºááá¯á·á¡ááœááºáá° áááºážááẠá¡ááœááºá¡áá±ážááŒá®ážáááºááá¯ááºáá«) ááá¯á·ááŒá±á¬áá·áºá áááºá¹áá±ááá»á¬ážááá¯ááºáá² ááááºážááááºážáá»á¬ážá¡ááŒá±á¬ááºáž á¡ááá¡áá»ááŒá±á¬áá«á ááá¯ááŸááºáá«áááºá ááá¯á·áá¬ááœááºá ááá¯áá±á¬ááºážáá±á¬á¡ááá¯á·ááŸá¬á á¡á±á¬ááºáá±á¬áºááŒáá«ááœááºá "áááºá¹áá±á" áá°áá±á¬á
áá¬ážáá¯á¶ážááᯠ"áá¯ááºá¡ááŸááº" áá°áá±á¬á¡áá¯á¶ážá¡ááŸá¯ááºážááᯠáááºááœáŸááºážáá±á·ááŸááá«áááºá
áá°áá®áá¯ááºáá²á· áá±ááááºá áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá á¡áá»á¬ážá
ᯠ(áá±áá¬áẠá á០áá) ááᯠá¡áá¯á¶ážáááŒá¯ááá±ážáá«á
á¡áá°ážááŒá¬ážáá¯á¶ážááá±á¬á· áááºá "áá»á±á¬á·áááº" á¡á¬ážáá¯á¶ážááᯠáá¯ááá±áá¬ááºááŸá¬ áááºááŸááá±áá¬ááŒá
áºááŒá®áž "á¡ááŒá±áá¶áá¬áá¬á
áá¬ážáá»áá¯ážá
á¯á¶áá±áá¬ááº"á á¡áááºá á
á¬ááŒá±á¬ááºážáá
áºááŒá±á¬ááºážááœáẠáá±ááºáá®áá¬áá¬á
áá¬ážáá»á¬áž (ááá¯ááºá¡áá«á¡áááº) ááœáẠá
á¬áá¬ážáá«áááºáá±áá«á áááºááẠá€áá±áá¬ááºáááºáá»á±á¬áºááœááºááœá¬ážáááºááá¯ááºáá«á ááá¯á·áá±á¬áº áá°áá®áá¯ááºááá»ááºáá»á¬ážááᯠááŒááºáá±á¬ááºááááá« - á¥ááá¬á á¡á®ááá¯áá»á®áá»á¬ážááẠá¡áá¯á¶ážááœáẠá¡áááá¡á¬ážááŒáá·áº ááŸááá±áá«áááºá áá±á¬ááºáá±áá¬ááº"áá±á¬ááºáááºááœá² áá¬áá¬áá±á«ááºážá
á¯á¶ áá±áá¬ááº"(á¡á²áá«á á¡áá»ááºáááá·áºáá«á 0x10000
ááá¯á· 0x1FFFF
) ááá¯á·ááŒá±á¬áá·áº UTF-16 ááẠá€á¡áá¬á¡á¬áž áá¯ááºáá±á¬ááºáááº- á¡ááœááºážá០áá¬ááºáá±á¬ááºá¡á¬ážáá¯á¶áž á¡ááŒá±áá¶áá¬áá¬á
áá¬ážáá»áá¯ážá
á¯á¶áá±áá¬ááºá áááºááá¯ááºáᬠtwo-byte áá¶áá«ááºááŒáá·áº âas isâ ááᯠáá¯ááºáá¯ááºáá¬ážáááºá ááá¯á·áá¬ááœááºá á€á¡ááœá¬á¡áá±ážááŸá ááááºážá¡áá»áá¯á·ááẠáááá»áá±á¬á¡áá¹ááá¬áá»á¬ážááᯠáá¯á¶ážááááœáŸááºááŒáá«á ááá¯á·áá±á¬áº á€ááá¯ááºá¡ááœá²ááŒá®ážáá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá¬ážáá
áºáá¯ááᯠááá·áºááœááºážá
ááºážá
á¬ážááẠááá¯á¡ááºááŒá±á¬ááºáž ááœáŸááºááŒáá« - á€ááá¯ááºáá±ážáá¯á áááºááá¯ážáá»á¬ážááᯠáá±á«ááºážá
ááºážááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡áá»á¯á¶ážáááºáá±á¬ áá¶áá«ááºáá
áºáá¯ááᯠáááŸááááºááŒá
áºáááºá ááá¬ážááẠáá°áá®áá¯áẠá¡ááá¯ááºážá¡ááŒá¬áž áá
áºáá¯áá¯á¶ážá á€á¡ááŒá¶á¡á
ááºááᯠâááá¯ááºáááºáá±á¬ááºá
á¯á¶ááœá²áá»á¬ážâ áá¯áá±á«áºáááºâáá°ááá¯á·ááᯠáááºááŒá¬ážáá°ážáá±áááºá
ááá¯á·ááŒá±á¬áá·áº UTF-16 ááẠ"áá¯ááºá¡ááŸááº" áá
áºáá¯áá»áŸáẠáá±ážááá¯áẠááá¯á·ááá¯áẠ(á¡ááœááºááŸá¬ážáá«ážáá±á¬ááá
á¹á
áá»á¬ážááœááº) ááá¯á¡ááºáááºá áááºážááẠáá±ážááá¯ááºááᯠáá
áºáá»áááºáá¯á¶ážáá¯á¶ážááŒááºážááẠááá¯áá±á¬ááºážáááºá ááá¯á·áá±á¬áº á€áááºážááŒáá·áº áá¯ááºááœááºážááá·áºá¡áá« áááºááẠ(ááŸáá·áº á¡ááŒá¬áž ASCII á
á¬áá¯á¶ážáá»á¬áž) ááẠáá¯áááœáẠáá±áá¬áá
áºáááºááᯠáá¯á¶ážááŸá¯á¶ážá
á±áááºá UTF-8 ááẠáááºážááᯠááŒá¯ááŒááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážáááº- áááºážááœáẠASCII ááẠááááºáá²á·ááá¯á·áááºá áá
áºááá¯ááºáᬠááŸááááºá áá¯ááºáá»á¬áž 0x80
ááá¯á· 0x7FF
- ááŸá
áºááá¯ááº; áá¶á០0x800
ááá¯á· 0xFFFF
- áá¯á¶ážáá»áẠá 0x10000
ááá¯á· 0x10FFFF
- áá±ážá áá
áºáááºááœááºá áááºáááºá¡áá¹ááá¬ááẠáá±á¬ááºážááœááºáá¬áá«ááŒá®- ASCII ááŸáá·áº ááá¯ááºáááºáá®ááŸá¯ ááŒááºáá±á¬ááºáá¬ááŒá®áž ááŒáá·áºáá±ááŸá¯ááẠ1 á០4 bytes á០á¡áá®á¡áá»áŸ "áá»á¶á·ááŸá¶á·ááœá¬ážáááº" ááŒá
áºáááºá ááá¯á·áá±á¬áº áááºáááºááá¯ááºáá±á¬ á¡ááŒá¬ážá¡áá¹ááá¬áá»á¬ážááẠUTF-16 ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á áááºááá·áºáááºážááŸáá·áºáá»áŸ á¡áá»áá¯ážáááŸááá«á ááᯠá¡áá»á¬ážá¡ááŒá¬ážááẠááŸá
áºááá¯ááºá¡á
á¬áž áá¯á¶ážááá¯ááºáá»á¬áž ááá¯á¡ááºááẠ- ááŸá
áºááá¯ááºááŸááºáááºážááŒáá·áº ááœáŸááºážááŒá¯á¶áá¬ážáá±á¬ á¡ááœá¬á¡áá±ážááẠáá á áá»ááºážááœá¬ážáá«áááºá 0xFFFF
ááá¯á· 0x7FF
ááá¯ááºááŸáá·áº á¥ááá¬á¡á¬ážááŒáá·áºá áá»á±á¬áºáá»á®áá¶áá¬áá¬ááá¯á· ááá«áááºáá«á Cyrillic ááŸáá·áº á¡ááŒá¬ážá¡áá¹ááá¬áá«ážáá¯á¶áž - hurray - áá¶áá±á¬ááºážáááºá á
á¬áá¯á¶ážáá
áºáá¯áá»áŸáẠ2 bytesá
áá¬ááŒá±á¬áá·áº áá®ááá¯ááŒá
áºáá¬áá²á UTF-8 ááẠáá¬ááºáá±á¬ááºáá¯ááºáá»á¬ážááᯠáááºááá¯á·ááá¯ááºá
á¬ážááŒá¯áááºááᯠááŒáá·áºááŒáá«á
áá¯á·á
áá¶áá«ááºáá»á¬ážááᯠááá¯ááºá
á¬ážááŒá¯áááºá¡ááœáẠááá¯ááºááá¯áẠáááºá¹áá±áááŒáá·áº á¡ááŸááºá¡áá¬ážááŒá¯áá¬ážáá±á¬ áá
áºáá»á¬ážááᯠá€áá±áá¬ááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá x
. two-byte record áá
áºáá¯ááœáẠááá¯ááá¯á·áá±á¬ bit 11 áᯠ(16 áá¯á¡áááº) áá¬ááŸááááºááá¯ááœá±á·ááŒááºááá¯ááºáááºá á€áá±áá¬ááœáẠáŠážáá±á¬ááºáá
áºáá»á¬ážááœáẠá¡áááºáá¯ááºáá±á¬ááºáá»ááºáá
áºáá¯áá¬ááŸááááºá áá±ážááá¯ááºááŸááºáááºážáá
áºáá¯ááœááºá áá¯ááºá¡ááŸááºáá¶áá«ááºá¡ááœáẠ21 bits á០32 áá¯ááᯠááœá²áá±áá±ážááẠ- áá¯á¶ážááá¯áẠ(á
á¯á
á¯áá±á«ááºáž 24 bits áá±ážáá±á¬) áá¯á¶áá±á¬ááºáááºáá¯áááºááá±á¬áºáááºáž áááºáá±á¬ááºááŸá¯á¡ááŸááºá¡áá¬ážáá»á¬ážááẠá¡ááœááºá¡áá»áœá¶á
á¬ážáááºá
áá« ááá±á¬ááºážáá°ážáá¬áž ááááºááá¯ááºáá°ážá áá
áºáááºááœááºá áá»áœááºá¯ááºááá¯á·ááẠspace ááᯠá¡ááœááºááá¯á
áá¯ááºáá«áá áá»áœááºá¯ááºááá¯á·ááœáẠá¡ááᯠentropy ááŸáá·áº redundancy á¡á¬ážáá¯á¶ážááᯠá¡ááœááºááá° áááºááŸá¬ážááá¯ááºáá±á¬ compression algorithms ááŸááááºá á¡ááŒá¬ážáá
áºáááºááœááºá áá°áá®áá¯ááºá áááºááŸááºážáá»ááºááŸá¬ áááºááá¯ááºááá»áŸ universal coding áá»á¬ážááᯠáá±ážáá±á¬ááºáááºááŒá
áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááááºá ASCII ááŸáá·áºáᬠáá¯ááºáá±á¬ááºáá²á·áá±á¬ UTF-8 ááœáẠáá¯ááºáá¯ááºáá¬ážáá±á¬ á
á¬ááŒá±á¬ááºážáá
áºááŒá±á¬ááºážááᯠáá»áœááºá¯ááºááá¯á· á¡ááºááŸááºážááá¯ááºááŒá®áž á¡ááŸááºááááºáááŸááá±á¬ ASCII á¡ááœá¬á¡áá±ážá០áá¬ááºáá±á¬ááºáá
áºáá±á¬ááºááᯠááŒááºááœá±á·ááááºááᯠáá
áá¯ážááááºáá« (áá±á¬ááºáá¯á¶ážááœááºá UTF-8 ááœáẠá¡á¬ážáá¯á¶ážá áá¯ááá
áºááŸá
áááºáá±á¬ bytes - á€áááºááŸá¬ ASCII á¡ááá¡áá»ááŒá
áºáááº)á á¡á
ááááºážá áá¯ááºáá±á¬áºááŒááºážáááŒá¯áá² áá±ážáááºáá±á¬á¡ááŒá®ážááᯠáá¯ááºááááºááŒááºááá¯áá»áŸáẠ(ááá¯á·ááá¯áẠáá»ááºá
á®ážááœá¬ážáá±á¬á¡ááá¯ááºážáá
áºáá¯ááŒá®ážáá±á¬áẠá¡áá»ááºá¡áááºáá¡á
áááºá¡ááá¯ááºážááᯠááŒááºáááºááá°ááŒááºáž)á áá¬ááºáá±á¬ááºáá
áºáá¯á
áááºááá·áºáá±áá¬á០á¡á±á¬á·ááºáááºááᯠááŸá¬ááœá±ááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠááœááºáá°áá«ááẠ(áá¯á¶áá±á¬ááºáá«ááŒá®á á¡áááºážáááºááŸá±á·áááºáá«ááŸááá±á¬ bytes ááá¯áá»á±á¬áºááẠ10
).
á¡áááºááŒá±á¬áá·áº á¡áá áºá¡áááºážááᯠáá®ááœááºááááºážá
áá
áºáá»áááºáááºážááŸá¬áááºá deflate áá²á·ááá¯á·áá±á¬ ááááááºááŸá¯ááá¯ááºáᬠá¡ááºáááá¯áá®áááºáá»á¬ážááẠá¡áá¯á¶ážáá»ááŸá¯ áá¶á·áá»ááºážáá±á¬áºáááºážá áááºááẠááŒáá¯ážáááºážáá»á¬áž ááá¯ááŸá±á¬ááºááŸá¯ááá¬áááᯠáááŸáááá¯áá±á¬ á¡áá« á¡áá«á¡á¬ážáá»á±á¬áºá
áœá¬ á¡ááŒá±á¡áá±áá»á¬áž ááŸááá«áááºá áá»áœááºáá±á¬áº ááá¯ááºááá¯ááºááá¯ááºáá» áááºáá±á¬ááºááá¯á· á
ááºážá
á¬ážáá²á·á¡áá« áá®ááŒá¿áá¬ááᯠááŒá¯á¶áá²á·ááááºá
áá®ážááŒá¬ážá¡á¬ážááŒáá·áºá ááá¯ááá¯á·áá±á¬áá±áá¬ááœá²á·á
ááºážáá¯á¶ááœáẠUTF-8 ááá¯á¡áá¯á¶ážááŒá¯áá±á¬á¡áá«ááœáẠááŒá
áºáá±á«áºáá¬ááá·áº áá±á¬ááºáááºáááŸá
áºááŒáá¯á·ááœááºá¡áá»ááºáá
áºáá»ááºááᯠáá»áœááºá¯ááºááŸááºáá¬ážááá¯áá«áááºá á¡áááºáá±á¬áºááŒáá«áá¯á¶ááœáẠá
á¬áá¯á¶ážáá
áºáá¯á¶ážááᯠááŸá
áºááá¯ááºá¡ááŒá
Ạáá±ážáá±á¬á¡áá«á áááºážááá¶áá«ááºááŸáá·áºáááºá
ááºáá±á¬ bit áá»á¬ážááẠá¡áááºážáá
áºáá¯ááá¯á·ááá±á¬ááºáá¬áá² áá
áºáá
áºá
á¯á¶ááŒáá·áº ááŒá¬ážáá±ááŒá±á¬ááºáž áá±á¬áºááŒáááºá 10
á¡áááºááœááº: 110xxxxx 10xxxxxx
. ááá¯á·á¡ááœááºááŒá±á¬áá·áºá áá¯ááá byte á á¡á±á¬áẠ6 bits ááẠá¡áá¹ááá¬áá¯ááºááœáẠááŒáá·áºááœá¬ážáá±á¬á¡áá« (ááá¯ááá¯áááºááŸá¬ á¡áá°ážá¡ááŒá±á¬ááºážáá
áºáᯠááŒá
áºáá±á«áºáááºá 10111111
â 10000000
) ááŒá®ážááẠááá byte áááºáž ááŒá±á¬ááºážáááºá á¡áá¹ááᬠâpâ ááᯠbytes ááŒáá·áº ááá¯ááºá
á¬ážááŒá¯ááŒá±á¬ááºáž ááœá±á·ááŸáááá«áááºá 0xD0 0xBF
áá±á¬áẠârâ á ááŒá®ážááŒá®á 0xD1 0x80
. ááŸá±á·áááºáá
áºáááºááœááºá áááºážááẠparent node ááᯠááŸá
áºááá¯ááºážááœá²á - ááŸá±á·áááºá¡ááœáẠáá
áºáá¯á 0xD0
, ááŸáá·áºá¡ááŒá¬ážá¡ááá¯á· 0xD1
(Cyrillic á¡áá¹ááá¬áá
áºáá¯áá¯á¶ážááᯠáá¯áááááá¯ááºááŒáá·áºáᬠáá¯ááºáá¯ááºáá¬ážááá¯ááºáá±á¬áºáááºáž)á
áá«áá¬ááá²á·áá²á
áá®ááŒá¿áá¬ááᯠáááºááá¯ááºáááºáž ááááºážááœá±ááᯠbits áá²á· áá á¬ážááá¯á· áá±á·áá»áá·áºááá¯á· áá¯á¶ážááŒááºáá²á·ááŒá®áž áá áºáá»áááºáááºážááŸá¬áá² Unicode áá áºáá¯áá¯á¶ážáá²á· ááœá²á·á ááºážáá¯á¶áá²á· á¡áááºážááẠááá¯áááºážááŸá®ážáá¬áá²á·áá«áááºá ááááºááŸá¬ UTF-C áá¯ááºáá¶áá«ááºáá±á¬áºááẠ("C" á¡ááœáẠááŒá áºáááºá áá»á áºáá áºáá±á¬) áá¯ááºá¡ááŸááºáá áºáá¯áá»áŸáẠ3 bytes áááºáááá¯áá² áá¯á¶ážá áœá²ááá¯ááºááŒá®áž áááŒá¬áááá¯á¶ážá áœá²áááºááœáá·áºááŒá¯áááºá áá¯ááºááœááºážáá¬ážáá±á¬ á á¬ááŒá±á¬ááºážáá áºáá¯áá¯á¶ážá¡ááœáẠá¡ááá¯ááá¯ááºáá áºáá¯. áááºážááẠASCII ááá¯ááºáá±á¬ á¡áá¹ááá¬á¡áá»á¬ážá¡ááŒá¬ážááœáẠááá¯ááá¯á·áá±á¬áá¯ááºáá¯ááºááẠááŒá áºáá±á«áºáá¬áááºáá°áá±á¬á¡áá»ááºááᯠááŒá áºáá±á«áºá á±áááºá UTF-30 ááẠ60-8% ááá¯áá»á áºáá áºáááºá.
áá±á¬ááºááœáẠáá¯ááºááŸááºááŒááºážááŸáá·áº áá¯ááºááŸááºááŒááºážááá¯ááºáᬠá¡ááºáááá¯áá®áááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá ááá°áá¬áá»á¬ážááᯠáá»áœááºá¯ááºáááºááŒáá¬ážáá«áááºá
á
ááºážáááºááŸá¯ááááºáá»á¬ážááŸáá·áº UTF-8 ááŸáá·áº ááŸáá¯ááºážááŸááºááŒááºážá
áá«áááºáž áá¯ááºáá²á·áááºá
áááá¯á¡ááºáá±á¬ á¡ááœááºáá»á¬ážááᯠáááºááŸá¬ážááŒááºážá
áá« UTF-8 ááᯠá¡ááŒá±áá¶á¡áá±áá²á· áá°áá²á·áᬠáá¯ááºáá«áááºá ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ááááá¯á¶ážááŸáá·áº á¡áááºááŸá¬ážáá¯á¶ážá¡áá¬ááŸá¬ byte áá
áºáá¯á
á®ááŸá service bit á¡áá±á¡ááœááºááᯠáá»áŸá±á¬á·áá»áááºááŒá
áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá UTF-8 ááŸá áááááá¯ááºááẠá¡ááŒá²áááºáž áá
áºáá¯áá¯ááŸáá·áº á
áááºáááºá 0
, ááá¯á·ááá¯áẠ11
- ááŸá±á·ááẠ10
á¡á±á¬ááºáá« ááá¯ááºáá»á¬ážáᬠááŸááááºá ááŸá±á·áááºááᯠá¡á
á¬ážááá¯ážááŒáá·áºáá¡á±á¬áẠ11
á¡áá±á«áº 1
ááŸáá·áº áá±á¬ááºááá¯ááºáá»á¬ážá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠááŸá±á·áááºáá»á¬ážááᯠáá¯á¶ážááááºááŸá¬ážáá«áááºá áá¬ááŒá
áºááá²?
0xxxxxxx
- 1 byte
10xxxxxx xxxxxxxx
- 2 bytes
110xxxxx xxxxxxxx xxxxxxxx
- 3 bytes
á
á±á¬áá·áºáá«á áá±ážááá¯ááºááŸááºáááºáž áááºááŸá¬áá²á áá«áá±ááá·áº á¡á²áá«ááᯠáááá¯á¡ááºáá±á¬á·áá« - áá¯á¶ážááá¯ááºáá²á· áá±ážáá²á·á¡áá«á á¡áᯠáá»áœááºáá±á¬áºááá¯á·ááŸá¬ 21 bits ááŸááá«áááºá áá«á ááááºážá¡á¬ážáá¯á¶ážá¡ááœáẠáá¯á¶áá±á¬ááºáá«ááŒá®á 0x10FFFF
.
áá«ááá¯á·áá®ááŸá¬ áá¬á áá±ážáá²á·ááŒáá¬áá²á á¡áá±ážááŒá®ážáá¯á¶ážá¡áá»ááºááŸá¬ ááŒá¬ážáá¶á¡ááœááºážááŸá áá¬ááá¬ááááºáá±áá¬á០áá¬ááºáá±á¬ááºáááºááááááºáá»á¬ážááᯠáá±á¬ááºááŸááºážááŒááºážááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠáááá¬ážáá±á¬ááá¯ááºááᯠááœáŸááºááŒááŒá®áž áááºážá០áá±á¬ááºá á¬áá¯á¶ážáá¡á ááᯠááŸá¬ááááá«á áááºážááẠáá»áœááºá¯ááºááá¯á·ááá±á¬áºáááºá ááá·áºáááºáá»ááºáá áºáá¯ááŒá áºáá±á¬áºáááºáž áááºááœá±á·ááœáẠáááºážááẠáááŸáááá±á¬ááºáááºážáá«ážáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº á¡á ááááºážá ááŒá¬ážáá¶ááá¯ááŒááºá ááŒá±ážááá¯ááºááẠ(á¡áá°ážáááŒáá·áº ááá¯ááºážááá¯áá»á¬áž)á
2 bytes ááŒáá·áº áá¬áá¬á
áá¬ážáá»á¬ážááᯠááœáŸááºážááŒá¯á¶áá¬ážáá±á¬ á¡ááŒá±á¡áá±ááẠááá¯áá±á¬ááºážáá¬áááº- ááᯠtwo-byte áá±á¬áºáááºááẠá¡ááœá¬á¡áá±áž 14 bits áá±ážáááºá áááºážááá¯á·ááẠáá¯ááºáá»á¬ážá¡ááá 0x3FFF
. ááá¯ááºááœá±á áá¶ááá±á¬ááºážáá«áá°áž (áá°ááá¯á·áá²á· áá¬ááºáá±á¬ááºááœá±á á¡áá»á¬ážá
á¯áá«á 0x4E00
ááá¯á· 0x9FFF
) ááá¯á·áá±á¬áº áá»á±á¬áºáá»á®áá¬áá°áá»áá¯ážáá»á¬ážááŸáá·áº á¡ááŒá¬ážáá°áá»áá¯ážáá»á¬ážááẠááá¯ááá»á±á¬áºá
áá¬áá±á¬ááºážááẠ- áááºážááá¯á·ááá¬áá¬á
áá¬ážáá»á¬ážááẠá
á¬áá¯á¶ážáá
áºáá¯á¶ážáá»áŸáẠ2 bytes ááŸáá·áºáááºáž ááá¯ááºáá®áá«áááºá
áá¯ááºááŒá±á¬ááºážááá·áº á¡ááŒá±á¡áá±ááᯠááá·áºááœááºážáá«á
ááá¯ááºážááœá±áá²á· áá¯ááºááá¹ááááœá±ááᯠá¡áá¯áá² á ááºážá á¬ážááŒáá·áºáá¡á±á¬ááºá á¡áááá¬ááºááœáẠáá°áá®áá±á¬ á¡áá¹ááá¬ááŒáá·áº áá±ážáá¬ážáá¬ážáá±á¬ á áá¬ážáá¯á¶ážáá»á¬áž á¡áá»á¬ážá ᯠáá«áááºáá±á·ááŸáááŒá®áž áááºážááẠá¡ááŒá¬ážáá±á¬ á á¬áá¬ážáá»á¬ážá áœá¬á¡ááœááºáááºáž ááŸááºáááºáá«áááºá á€á¡áá¹ááá¬ááᯠáá áºááŒáááºááœáŸááºááŒááŒá®áž áááºážá¡ááœááºážá០á¡áá¹ááá¬á¡áá±á¡ááœááºááá¯áᬠááœáŸááºááŒááŒááºážááẠáá±á¬ááºážáááá·áºáááºá áá°áá®áá¯ááºááá¬ážááŸá áá¬ááºáá±á¬ááºáá»á¬ážá á¡á á®á¡á ááºá áá»áœááºá¯ááºááá¯á·ááᯠá¡áá±á¬ááºá¡áá°ááŒá áºá á±áááºááᯠááŒáá·áºáá«á
á¡áááºáá±á¬áºááŒáá«á¡ááá¯ááºáž áá°áá®áá¯ááºááᯠááœá²ááŒá¬ážáá¬ážáááºá áá±áá¬áẠ65536 áá¯ááºáá áºáá¯á á®á áá«áá±ááá·áº áá«á á¡áááºážá¡áá¯á¶ážáááºáá²á· á¡ááá¯ááºážááá¯ááºáá« (ááŒá±á¬ááŒá®ážáá¬ážá¡ááá¯ááºážá á¡áá»á¬ážá á¯ááá±á¬á· áá¯ááá±áá¬ááºááŸá¬ ááŒá áºáá±áááº)á ááá¯á áááºáááºá á¬ážááá¯á·áá±á¬ááºážáá¬á á¡ááá¯ááºážááá¯ááºážáá«á áá¯á¶ážá á€á¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážááẠáá¯á¶áá±á¡ááŸááºááá¯ááºáá±á¬á·áá² á¡áááá¹áá«ááºááá¯ááŸááá«ááẠ- á ááºážáááºážá¡áá áá áºáá¯á á®ááẠáá°áá®áá±á¬á¡áá¹ááá¬á០á á¬áá¯á¶ážáá»á¬ážááᯠáá±á«ááºážá ááºáá¬ážáááºá
áááºá¹ááá®á¡áá¹ááá¬áá»á¬ážá á¡áá¹ááá¬áá»á¬ážáá«ááŸááá±á¬ ááá±á¬ááºáá
áºáá¯á áá¶ááá±á¬ááºážá
áœá¬ááŒáá·áºá áááá¯ááºážááá¯ááºáᬠá¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá¡ááœááºá á€áááºááŸá¬ á¡ááœááºááááºáááºážááŸá¯áááŸááá±á¬ áá¯ááºááá¯ážááŒááºážá á¥ááá¬áá
áºáá¯ááŒá
áºááẠ- á
á¬áá¯á¶áž 96 áá¯á¶ážááẠ128 áá¯á¶ážáá¯ááºá¡ááŸááºáá»á¬ážáá±á«áºááœáẠáááá¯ááá² ááŒáá·áºáá»á²áá±áá«áááºá
áá¯ááºááœááºáá»á¬ážáá¡á
áá»á¬ážááŸáá·áº áááºážááá¯á·áá¡ááœááºá¡á
á¬ážáá»á¬ážááẠá¡ááŒá²áááºáž 16 áá¡ááá»á¬ážááŒá
áºááẠ- áááºážááá¯á¡áááºááŒá±á
á±áááºááá¯ážááŸááºážá
áœá¬áá¯ááºáá±á¬ááºáááºá ááá¯á·á¡ááŒááºá áá»á¬ážá
áœá¬áá±á¬ ááá±á¬ááºáá»á¬ážááẠ128 ááá¯á·ááá¯áẠ256 á á¡ááŒáŸá±á¬ááºáá»á¬ážááŒá
áºááá·áº áááºááá¯ážáá»á¬ážáá±á«áºááœáẠá¡á
ááŒá¯áᬠá¡áá¯á¶ážáááºááẠ- á¥ááá¬á á¡ááŒá±áᶠCyrillic á¡áá¹ááá¬ááẠ256 bytes á¡áá áá±áá¬áá°áááºá 0x0400
ááá¯á· 0x04FF
. ááá«áááºáž ááŒáá¯ááááºážáá¬ážááẠáá«á áá±á¬áºáá±á¬áºá¡áááºááŒá±áá«áááºá 0x04
ááá¯á·áá±á¬áẠáááºááá·áº Cyrillic á
á¬áá¯á¶ážááᯠáá
áºááá¯ááºááŒáá·áº áá±ážáá¬ážááá¯ááºáááºá ááŸááºáá«áááºá á€áááºážááŒáá·áº ASCII (ááŸáá·áº áá±áá¯áá»á¡á¬ážááŒáá·áº á¡ááŒá¬ážáá¬ááºáá±á¬ááºáá»á¬ážáá¶) ááá¯á· ááŒááºááœá¬ážááẠá¡ááœáá·áºá¡áá±áž áá¯á¶ážááŸá¯á¶ážáá«áááºá ááá¯á·ááŒá±á¬áá·áºá
- ááŸá
áºááá¯ááº
10yyyyyy yxxxxxxx
áá¶áá«ááºáá áºáá¯áá²á· áááºá¹áá±áááᯠáá±á¬áºááŒáá¯á¶áááºáááá«áá°ážáyyyyyy yxxxxxxx
áá«áá±ááá·áºáááºáž á¡ááŒá±á¬ááºážá¡áá² áááºááŸáá¡áá¹ááᬠá¡áá±á«áºyyyyyy y0000000
(ááá¯ááá¯áááºááŸá¬ áááá¬áááºááŸá¬ážáá±á¬ á¡ááá¯ááºážáá»á¬ážááŸááœá²á á¡ááá¯ááºážá¡á¬ážáá¯á¶ážááᯠáá»áœááºá¯ááºááá¯á· ááŸááºáááá«áááºá 7 bit áá²á·); - áá
áºááá¯ááº
0xxxxxxx
á€áááºááŸá¬ áááºááŸáá¡áá¹ááá¬á á¡áá¹ááá¬ááŒá áºáááºá á¡ááá·áº 1 ááœááºáá»áœááºá¯ááºááá¯á·ááŸááºáááá²á·áá±á¬ á¡á±á¬á·ááºáááºááá¯á· áá±á«ááºážááá·áºááẠááá¯á¡ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá¹ááá¬ááá¯áááŒá±á¬ááºážáá±á¬áºáááºáž á¡á±á¬á·ááºáááºááẠáá¯áááŒá áºáá±á¬ááŒá±á¬áá·áº ASCII ááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
3 bytes ááá¯á¡ááºáá±á¬ áá¯ááºáá»á¬ážá¡ááœáẠá¡áá¬ážáá°
- áá¯á¶ážááá¯ááº
110yyyyy yxxxxxxx xxxxxxxx
áá¶áá«ááºáá áºáá¯ááŸáá·áºáááºá¹áá±áááá¯ááœáŸááºááŒáá«áyyyyyy yxxxxxxx xxxxxxxx
, ááŒá±á¬ááºážáá² áááºááŸáá¡áá¹ááᬠá¡áá±á«áºyyyyyy y0000000 00000000
(áááºáááºáááœá²ááẠá¡áá¯ááºááŸááºáááááºá 15 bit áá²á·) ááŸáá·áºáá»áœááºá¯ááºááá¯á·ááá¯áááºáá±áá±á¬á¡ááœááºááá¯á á áºáá±ážáá«á ááŸáẠáá¯áẠ(á¡áá¹ááá¬ááᯠdouble-byte áá áºáá¯ááá¯á· ááŒááºááŒá±á¬ááºážáá±á¬á¡áá«á á€á¡áá¶ááᯠáá»áœááºá¯ááºááá¯á· ááŒááºáááºáááºááŸááºáááº)á - ááŸá
áºááá¯ááº
0xxxxxxx xxxxxxxx
long mode ááœáẠáááºážááẠáááºááŸáá¡áá¹ááá¬á á¡áá¹ááá¬ááŒá áºáááºá á¡áá¬ážáá°áááºá á¡ááá·áº 1 á០á¡á±á¬á·ááºáááºááŒáá·áº áááºážááᯠáá±á«ááºážááá·áºáá«áááºá áá áºáá¯áááºážáá±á¬ ááœá¬ááŒá¬ážáá»ááºááŸá¬ ááᯠáá»áœááºá¯ááºááá¯á·ááẠááá¯ááºááŸá áºááŒá±á¬ááºážááᯠáááºááŒááºážááŒá áºááẠ(áá»áœááºá¯ááºááá¯á·ááẠá€áá¯ááºááá¯á· ááŒá±á¬ááºážááœá¬ážáá±á¬ááŒá±á¬áá·áº)á
á¡áá¶áá±á¬ááºážáááº- ááᯠáá»áœááºá¯ááºááá¯á·ááẠáá°áá®áá±á¬ 7-bit áá°áá®áá¯ááºá¡ááœá¬á¡áá±ážá០á á¬áá¯á¶ážáá»á¬ážááᯠáá¯ááºáá¯ááºááẠááá¯á¡ááºáá±á¬áºáááºážá áá»áœááºá¯ááºááá¯á·ááẠá¡á ááœáẠ1 byte á¡ááá¯ááŸáá·áº á á¬áá¯á¶ážáá áºáá¯á¶ážáá»áŸáẠá á¯á á¯áá±á«ááºážáá áºááá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
á¡á
á±á¬ááá¯ááºážáá¬ážááŸááºážáá»á¬ážáá²ááŸáá
áºáá¯ááŸá¡áá¯ááºáá¯ááºáááºá áááºážááẠUTF-8 ááᯠáááŒá¬áá á¡ááá¯ááºáá°áá±ááŒá®ááŒá
áºáá±á¬áºáááºáž ááá¯ážáááºááŸá¯á¡ááœáẠáá±áá¬áá»ááºáá±ážáááºá
ááá¯ááá¯ážáá¬á áá¬áá²á ááááá¯á¶ážá¡áá±áá²á·ááŒá±á¬áááẠáá»áœááºáá±á¬áºááá¯á·ááŸá¬ á¡ááŒá±á¡áá±áá áºáá¯ááŸááááºá áááºááŸáá¡áá¹ááá¬ááŸááẠááŸáá·áº á¡ááŸááºááŒá áºáá±ážáá«á ááŸááºáá»á¬ážáá±á¬áá¯ááº. áááºážááẠáá»áœááºá¯ááºááá¯á·ááᯠááá¯ááá¯ááá·áºáááºáá¬ážáá«áááº- ááá¯á¡áá« áá°áá®áá±á¬áá¬ááºáá±á¬ááºáá»á¬ážááᯠááá°áá®áá±á¬á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááœáẠááá°áá®áá±á¬á¡ááœááºááŒá±á¬ááºážááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á á¬ááŒá±á¬ááºážááœá²áá»á¬ážááᯠááŸá¬ááœá±ááŒááºážááẠááá¯ááºáá»á¬ážááᯠááŸáá¯ááºážááŸááºáá¯á¶áááºááá¯ááºáá² áááºážááᯠááá·áºááœááºážá ááºážá á¬ážááẠáá¯ááºáá±á¬ááºááááºááŒá áºáááºá áá¯áááá¡áá±áá²á·á á¡áá¹ááá¬ááá¯ááŒá±á¬ááºážááŒá®ážáá¬áá²á· ASCII á¡áá¹ááá¬ááœá±áá²á· áá¯ááºáá¯ááºá ááá±á¬ááºážáá±á¬á·áááᯠááŒá áºááœá¬ážááẠ(áá«á áááºáááºá¡áá¹ááá¬áááºáááá² spaces á¡áá«á¡ááẠá¡ááŒá±áá¶áááºáá¯á¶ááœá±áá«) - áá°ááá¯á·á á¡áá¹ááá¬ááᯠ0 ááá¯á· áááºááŒá®áž ááŒá±á¬ááºážááá¯ááºážáááºá á¡ááá¯ááá¯ááºáá áºáᯠ(ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á·á áááºáá¡ááŸááºááá¯á· ááŒááºááœá¬ážááẠáá±á¬ááºáá áºáá¯)á
á á¬áá¯á¶ážáá áºáá¯á¶ážá áá±á¬ááºážáááºá ááŸá áºáá¯á ááá¯áá±á¬ááºážáá«áááºá
á¡áááºáá±á¬áºááŒáá« áá¯á¶ážáá¯ááá¯á· áá»áœááºá¯ááºááá¯á·ááá áºááŸá±á·áááºáá»á¬ážááᯠá¡áááºážáááºááŒá±á¬ááºážáá²ááẠááŒáá¯ážá á¬ážááŒáá·áºááŒáá«á áá¯á·á
0xxxxxxx
- áá¯á¶ááŸááºáá¯ááºááœáẠ1 byteá ááŸááºáá±á¬áá¯ááºááœáẠ2 áá¯
11xxxxxx
- 1 byte
100xxxxx xxxxxxxx
- 2 bytes
101xxxxx xxxxxxxx xxxxxxxx
- 3 bytes
ááᯠtwo-byte record áá
áºáá¯ááœáẠáááŸáááá¯ááºááŸá¯áááºážáá±á¬ bit áá
áºáá¯ááŸáááẠ- code point á¡ááááŸááááºá 0x1FFF
ááá¯áá»áŸáá 0x3FFF
. ááá¯á·áá±á¬áºá áááºážááẠdouble-byte UTF-8 áá¯ááºáá»á¬ážááẠáááááá¬áá¬ááŒá®ážáá±áá±ážáááºá á¡áá¯á¶ážá¡áá»á¬ážáá¯á¶ážáá¬áá¬á
áá¬ážáá»á¬ážááœáẠá¡á¶áááºááœááºáá»ááŒá
áºáá±áá²á áááá¬áááºááŸá¬ážáá±á¬áá¯á¶ážááŸá¯á¶ážááŸá¯ááẠáá»áááºážááœá¬ážáááº
áá®áá¯ááºá¡áá
áºá áá¬áá²á 11xxxxxx
? áááºážááẠá
á¬áá¯á¶áž 64 áá¯á¶ážáá«ááá·áº áá±ážáááºáá±á¬ âstashâ ááŒá
áºááŒá®áž áááºážááẠáá»áœááºá¯ááºááá¯á·á áááºáá¡áá¹ááá¬ááᯠááŒáá·áºá
áœááºáá±ážáá±á¬ááŒá±á¬áá·áº áááºážááᯠá¡áááºáᯠáá±á«áºááẠ(á¡áááº) á¡ááºááá¬á áá»áœááºá¯ááºááá¯á·ááẠáááºááŸáá¡áá¹ááá¬ááᯠááŒá±á¬ááºážáá±á¬á¡áá«á á¡áá¹ááá¬áá±á¬ááºážáá
áºááá¯ááºážááẠá¡áááºááŒá
áºáá¬áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠASCII á០Cyrillic ááá¯á· ááŒá±á¬ááºážáá²á·ááẠ- ááᯠstash ááœáẠáá«áááºáá±á¬ á
á¬áá¯á¶áž 64 áá¯á¶ážáá«ááŸááááºá áááºáááºá¡áá¹ááá¬á áá¶áá«ááºáá»á¬ážá space ááŸáá·áº áá±á¬áºáᬠ(ASCII ááá¯ááºáá±á¬ á
á¬áá¬ážáá»á¬ážááœáẠáááŒá¬áá ááá·áºááœááºážááŸá¯áá»á¬áž)á ASCII ááá¯á· ááŒááºááŒá±á¬ááºážáá« - Cyrillic á¡áá¹ááá¬á á¡ááá á¡á
áááºá¡ááá¯ááºážááẠá¡áááºá¡áá¹ááᬠááŒá
áºáá¬áá«áááºá
á¡áá¹ááá¬ááŸá áºáá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáááá·áºá¡ááœááºááŒá±á¬áá·áº á¡áá¹ááá¬áá»á¬ážááá¯ááŒá±á¬ááºážáááºá¡ááœáẠá¡áááºážáá¯á¶ážáá¯ááºáá»á ááááºá¡áááºážáááºááŒáá·áº á á¬áá¬ážá¡áá»á¬ážá¡ááŒá¬ážááᯠááá¯ááºááœááºááá¯ááºááẠ(áááºáá¯á¶áááºáá¯á¶ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº ASCII ááá¯á· ááŒááºááœá¬ážáááºáááºá ááá¯á·áá±á¬áº áááºážáá±á¬ááºááœáẠáááºáá±á¬ááºážá¡áá¹ááá¬á០ASCII ááá¯ááºáá±á¬ á¡áá¹ááá¬áá»á¬ážá áœá¬ááᯠáá»áœááºá¯ááºááá¯á·áááŸááá«áááºá ááŒááºááŒá±á¬ááºážáááºá)
á¡ááá¯áá¯- á¡áá¹ááá¬ááœá²áá»á¬ážááᯠááŸá±á·áááºááŒááºážá 11xxxxxx
ááŸáá·áºááŒá
áºáááºáááºážááááŠáž offset ááá¯ááœá±ážáá»ááºáá«á 0xC0
áá»áœááºá¯ááºááá¯á·ááẠCP1252 ááŸáá·áº áá
áºá
áááºáá
áºááá¯ááºáž ááá¯ááºáááºáá®ááŸá¯ááᯠáááŸááá«áááºá áá
áºáááºážááá¯ááá±á¬áº CP1252 ááœáẠáá¯ááºáá¯ááºáá¬ážáá±á¬ á¡áá±á¬ááºá¥áá±á¬á á
á¬áá¬ážáá»á¬ážá
áœá¬ (ááá¯á·áá±á¬áºáááºáž á¡á¬ážáá¯á¶ážááá¯ááºáá«) UTF-C ááœáẠáá°áá®áá±áá«áááºá
ááá¯á·áá±á¬áº á€áá±áá¬ááœáẠá¡áááºá¡áá²áá
áºáá¯áá±á«áºáá¬áááº- áááºáá¡áá¹ááá¬á០á¡áááºáá
áºáá¯ááᯠáááºááá¯á·ááá°ááááºáááºážá áá°áá®áá±á¬ offset ááá¯áááºáá¬ážáá²á·ááá¯ááºáááºá ááá¯á·áá±á¬áº - ááŒá
áºáá»ááºáá±á¬á· - áá®ááŸá¬ áá°áá®áá¯ááºááœá²á·á
ááºážáá¯á¶á áá«ááá¯á·ááᯠááá·áºáá»ááºáá±ááŒá®á áááŒá¬ááááá¯áááᯠá¡áá¹ááá¬á á¡áááá¡á
áááºá¡ááá¯ááºážááẠááá±á¬ááºáá¡á
ááœááºááá¯ááºáá« (á¥ááá¬á áá¯ááŸá¬ážááŒáá¯á·áá±á¬áº "A" ááœáẠáá¯ááºáá«ááŸááááºá 0x0410
Cyrillic block ááŒáá·áº á¡á
ááŒá¯áá±á¬áºáááºážá 0x0400
) ááá¯á·ááŒá±á¬áá·áº áááá¡áá¹ááᬠ64 áá¯á¶ážááᯠstash áá²ááá¯á·ááá·áºááá¯ááºáááºááŸáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá¹ááá¬áá¡ááŒá®ážááá¯ááºážááá¯á· áááºáá±á¬ááºááœáá·áºáá¯á¶ážááŸá¯á¶ážááœá¬ážááá¯ááºáááºá
á€ááŒá¿áá¬ááᯠááŒá±ááŸááºážáááºá áá»áœááºá¯ááºááẠááá°áá®áá±á¬áá¬áá¬á áá¬ážáá»á¬ážááŸáá·áº áááºááá¯ááºááá·áº ááá±á¬ááºá¡áá»áá¯á·ááᯠááá¯ááºááá¯ááºááŒááºáááºážáá²á·ááŒá®áž áááºážááá¯á·á¡ááœáẠáááºááá áºáá¯á¡ááœááºáž á¡áááºá¡áá¹ááá¬á offset ááᯠáááºááŸááºáá±á¬áºááŒáá²á·áááºá ááŒáœááºážáá»ááºá¡áá±ááŒáá·áº áááºáááºá¡áá¹ááá¬ááᯠáá±áá¯áá»á¡á¬ážááŒáá·áº base64 áá²á·ááá¯á· ááŒááºáááºá á®á á áºáá¬ážáááºá
áá±á¬ááºáá¯á¶ážáá
áá áºáá¯áá¯ááᯠáááºááŸá¬ ááá¯ážáááºá¡á±á¬ááºáá¯ááºááá¯ááºááá²ááá¯áá¬ááᯠáá±á¬ááºáá¯á¶ážá ááºážá á¬ážááŒáá·áºáá¡á±á¬ááºá
áá¯á¶á
á¶ááᯠáááááŒá¯áá«á 101xxxxx xxxxxxxx xxxxxxxx
ááááºážáá»á¬ážá¡áá áá¯ááºáá¯ááºááẠááœáá·áºááŒá¯áááºá 0x1FFFFF
ááŸáá·áº áá°áá®áá¯ááºááẠá¡á
á±á¬ááá¯ááºážááœáẠá¡áá¯á¶ážáááºáááºá 0x10FFFF
. áá
áºáááºážááá¯ááá±á¬áº áá±á¬ááºáá¯á¶ážáá¯ááºá¡ááŸááºááᯠááá¯ááºá
á¬ážááŒá¯áá«áááºá 10110000 11111111 11111111
. ááá¯á·ááŒá±á¬áá·áº ááá byte ááẠáá±á¬ááºáá¯á¶á
á¶ááŒá
áºáá»áŸáẠááŒá±á¬ááá¯ááºáááºá 1011xxxx
(áááºááŸá¬áá² xxxx
0 áááºááŒá®ážáááº)á ááá¯á·áá±á¬áẠá¡ááŒá¬ážá¡áá¬áá
áºáá¯ááᯠááá¯ááá¯áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠáá
áºááá¯ááºááœáẠáá¯ááºááœááºážáááºá¡ááœáẠá¡áááºáááŒááºáááá¯ááºáá±á¬ á¡ááŒá¬ážá
á¬áá¯á¶áž 15 áá¯á¶ážááᯠááá·áºááá¯ááºáá±á¬áºáááºáž ááœá²ááŒá¬ážá
áœá¬ááŒá¯áá¯ááºááẠáá¯á¶ážááŒááºáá²á·áááºá
ááᯠáá¯á¶ážááá¯áẠááá¯á¡ááºáá±á¬ áá°áá®áá¯ááºáá¯á¶ážáá»á¬ážááᯠááŒáá·áºááŒáá«á
áá¯á·á á¡ááŒá±áá¶á¡á¬ážááŒáá·áºá áá±á¬áºááŒáá¬ážááŒá®ážááŒá
áºááá·áºá¡ááá¯ááºážá á€á¡áá¬áá»á¬ážááẠááá¯ááºá
á¬áá¯á¶ážáá»á¬ážááŒá
áºááẠ- ááá¯á·áá±á¬áº áááºážááá¯á·ááŸáá·áºáá¯ááºáááºáááºáá²áááºá áááºážááá¯á·á¡ááẠááááá ááŸááááºá ááá¯á·áá±á¬áº áá®áá¬ááááŸáá·áº áá¬áá¬áá¬áááá¯á·áááºáž ááá¯áá±áá¬ááá¯á· áá»á¶áááºážááœá¬ážáá²á·ááŒá®áž áááºážááá¯á·á¡ááẠááŸá
áºáá¬áááºáááºážáá±á¬ á¡áá±á¡ááœáẠá¡áá»á¬ážá¡ááŒá¬ážáááŸááá±á¬á·áá±á áá»áááºááœá±ááᯠáááááááá²á·á¡ááœááºá á¡á®ááá¯áá»á®ááœá±áááºáž ááŸááá«ááẠ(ááááºáá±á¬á· áá°ááá¯á·á áá°áá®áá¯ááºááŸá¬ áá±áá¬áá±á¬áºáá±á¬áºáá»á¬ážáá»á¬ážááŸá¬ ááŒáá·áºáá»á²áá±áá±ááá·áº á¡ááá ááá±á¬ááºááœá±á á¡ááœá¬á¡áá±ážáá²ááŸá¬ ááŸááááºá 0x1F300
- 0x1FBFF
) áá¯ááºá¡ááŸááºáá»á¬ážá
áœá¬á០áá
áºááŒáá¯ááºááẠá
á¯á
ááºážáá¬ážáá±á¬ á¡á®ááá¯áá»á®áá»á¬áž ááŸááááºáá°áá±á¬á¡áá»ááºááᯠáááºá
ááºážá
á¬ážáá«á (á¥ááá¬á á¡á®ááá¯áá»á® ââââ
ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡á®ááá¯áá»á®á áá®áá¬áá ááŸáá·áº áá¬áá¬áá¬áá¬ááá¯á·ááŸáá·áº áááºááá¯ááºááá·áº ááœá±ážáá¬ážáá±á¬ á¡ááá¯ááºážá¡áá»áá¯á·ááᯠááœá±ážáᬠáááºážááá¯á·ááᯠá ááºáááºáááŒááºá á¬áááºážáá áºáá¯á¡ááŒá ẠááŒááºáááºáá±ááœááºááŒá®áž áááºážááá¯á·ááᯠáá¯á¶ážá¡á á¬áž ááŸá áºááá¯ááºá¡ááŒá Ạáá¯ááºáá¯ááºáá¬ážáááº-
1011xxxx xxxxxxxx
ááŒá®ážááŒááº- á¡áááºáá±á¬áºááŒáá« á¡á®ááá¯áá»á®
áá±á¬ááºááẠááŒá¿áá¬áá
áºáá¯ááᯠááŒá±ááŸááºážááá¯á· ááŒáá¯ážá
á¬ážááŒáá·áºáá¡á±á¬ááºá áá»áœááºá¯ááºááá¯á·ááŸááºááááá±á¬ááºá á¡ááŒá±áá¶á¡áá¹ááá¬ááẠáááŸááááŒá
áºááá¯á¡ááºáááºá 6 bits ááŒáá·áºáááºáá áá»áœááºá¯ááºááá¯á· ááŸááºáá¬ážáá¬áž ááá·áº áá¯áẠáá
áºáá¯á
á® á áá¯áẠááᯠáá±á¬áº ááẠááẠá ááá±á¬ááºááœááºááŸááá±á¬ ááá¯ááºá
á¬áá¯á¶ážáá»á¬áž 0x4E00
- 0x9FFF
áááºážááẠbit 0 ááá¯á·ááá¯áẠ1 ááŒá
áºáááºá áááºážááẠá¡ááœááºá¡áááºááŒá±áááºááá¯ááºáá«- áá»áœááºá¯ááºááá¯á·ááẠá€áááºááá¯ážááŸá
áºáá¯ááŒá¬ážááœáẠá¡áá¹ááá¬ááᯠá¡áááºáááŒááºááŒá±á¬ááºážááẠááá¯á¡ááºáááá·áºááẠ(ááá¯ááá¯áááºááŸá¬ áá¯á¶ážááá¯ááºááá¯áá¯á¶ážáá«)á ááá¯á·áá±á¬áº ááŸááºáá»á¬ážáá±á¬áá¯ááºááœááºá áá¯ááºááá¯ááºááá¯ááºá០áá»áœááºá¯ááºááá¯á·ááẠááá¯áá±á¬ááºážáá±á¬áá¯ááºááᯠá¡áá¯á¶ážááŒá¯á áá»áœááºá¯ááºááá¯á·áá¯ááºááŸááºáá¬ážáá±á¬ á
á¬áá¯á¶ážá¡áá±á¡ááœááºááᯠáá¯ááºááá¯ááºááẠ(á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ ááŸáá·áºááœááºáá»á¬ážá¡á¬ážáá¯á¶ážááŒá®ážáá±á¬ááºá áááºážááẠ10240) ááŒá
áºááẠ- ááá¯á·áá±á¬áẠáá»ááºážáá»á¬ážáá¡ááœá¬á¡áá±ážááẠááŒá±á¬ááºážáá²ááœá¬ážáááá·áºáááºááᯠáááááŒá¯áá«á 0x2600
- 0x77FF
á€á¡ááŒá±á¡áá±ááœááºá á€á¡ááá¯ááºážá¡ááŒá¬ážáá
áºáá¯áá¯á¶ážááœááºá á¡áááºááŸá¬ážáá¯á¶áž 6 bits (21 áá¯á¡áááº) ááẠ0 ááŸáá·áº áá®áá»áŸáááºááŒá
áºáááºá ááá¯á·ááŒá±á¬áá·áºá hieroglyphs á sequences áá»á¬ážááẠhieroglyph áá
áºáá¯áá»áŸáẠtwo bytes (ááá¯áá²á·ááá¯á·áá±á¬á¡ááá¯ááºážá¡áá¬á¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºááá·áº) áááá¯á¡ááºáá²á á¡áá¹ááá¬ááá¯ááºáá»á¬ážááá¯ááŒá
áºá
á±áááºá
á¡á á¬ážááá¯ážááŒá±ááŸááºážáááºážáá»á¬áž- SCSUá BOCU-1
áá°áá®áá¯áẠáá»áœááºážáá»ááºáá°áá»á¬ážááẠáá±á¬ááºážáá«ážáá±á«ááºážá
ááºááᯠáááºáá¯á¶ááŒáá·áº áá°áá®áá¯ááºá
á¶ááŸá¯ááºážáá»á¬ážááŒá¬ážááœáẠááá¯ááºááá¯ááºááŸáááŒá±á¬ááºáž ááá·áºá¡á¬áž ááááá±ážááẠááŒá
áºááá¯ááºááŒá±áá»á¬ážáá«áááºá
ááá¯ážááá¯ážáá¬ážáá¬áž áááºáá¶áá«áááº- áá»áœááºá¯ááºá áá¯á¶ážááŒááºáá»ááºááᯠáá±ážáá¬ážáá¬ááœáẠáá±ážáá±ážáááºááẠááŸá áºááŒáŸá¯ááºááŒá®ážááŸáᬠáááºážá ááŒá áºáááºááŸá¯á¡ááŒá±á¬ááºážááᯠááááŸááá²á·áá«áááºá áá®á¡ááŒá±á¬ááºážááᯠá¡á ááááºážá áááá²á·áááºááá¯áááºá ááá¯áá·áºáááºážááá¯áá·áºáááºáá²á· áá»ááºážáááºááá·áºá¡á á¬áž á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá áºáá¯ááᯠáá±ážááá¯á· ááŒáá¯ážá á¬ážáá²á·áᬠááŒá áºááá¯ááºáá«áááºá
á áááºáááºá á¬ážá áá¬áá±á¬ááºážáá¬á SCSU á áá»áœááºáá±á¬áºááá¯ááºááá¯áẠáá®ááœááºáá²á·áá²á· á áááºáá°ážááœá±áá²á· á¡ááœááºáááºáá°áá²á· á¡áá¯ááºáá®áá¬ááœá±ááᯠá¡áá¯á¶ážááŒá¯áᬠ(âá¡áá¹ááá¬â á¡áá°á¡áá¡á á¬áž âááŒáááºážáá±á«ááºáá»á¬ážâ ááᯠáá¯á¶ážááŒááŒá®ážá áá»áœááºá¯ááºááŸá¬ áááŸáááá¯ááºáááºááẠááá¯áá»á¬ážáááº)á áá áºáá»áááºáááºážááŸá¬áááºá á€áá±á¬áºáááºááẠá¡á¬ážáááºážáá»ááºáá»á¬ážáááºáž ááŸááááº- áááºážááẠáá¯ááºáá¯ááºááŒááºážááẠáá»á¯á¶á·ááŒááºáž á¡ááºááá¯áá®áááºáá»á¬ážááŸáá·áº á¡áááºážááẠááá¯áá®ážá ááºáá«áááºá á¡áá°ážáááŒáá·áºá á á¶ááŸá¯ááºážááẠááá¯ááºá á¬ážááŒá¯áááºážáááºážáá»á¬ážá áœá¬ááᯠáá±ážá áœááºážáá±á¬áºáááºáž á¡áá±á¬ááºážáá¯á¶ážááᯠáááºááá¯á·ááœá±ážáá»ááºááááºááᯠáááŒá±á¬áá¬ážáá± - á€á¡ááœááºá áá¯ááºááŒá±á¬ááºážáááááá¬ááẠá¡áá»áá¯á·áá±á¬ heuristics á¡áá»áá¯ážá¡á á¬ážááᯠá¡áá¯á¶ážááŒá¯ááááºááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áºá áá±á¬ááºážááœááºáá±á¬áá¯ááºááá¯ážááŸá¯ááá¯áá¯ááºáá¯ááºááá·áº SCSU áá¯ááºáá«ááẠáá»áœááºá¯ááºá á¡ááºáááá¯áá®áááºááẠááá¯ááá¯ááŸá¯ááºááœá±ážááŒá®áž ááá¯ááá¯áááºáá²áááºááŒá áºáááºá
ááŸáá¯ááºážááŸááºáááºá¡ááœááºá áá»áœááºá¯ááºááẠSCSU á ááá¯ážááŸááºážáá±á¬ á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááᯠJavaScript ááá¯á· ááœáŸá²ááŒá±á¬ááºážáá±ážáá²á·ááẠ- áá¯ááºááá¬áá¡á áááºážááẠáá»áœááºá¯ááºá UTF-C ááŸáá·áº ááŸáá¯ááºážááŸááºááá¯ááºáá±á¬áºáááºáž á¡áá»áá¯á·ááá á¹á áá»á¬ážááœáẠááááºááẠáááºáá¬ááá¯ááºááŸá¯ááºážááá¯áááá¯ážááœá¬ážááẠ(áá áºáá«áá áºáᶠáááºážááẠáááºážááá¯áá»á±á¬áºááœááºááá¯ááºáá±á¬áºáááºážá á¡áá»á¬ážááŒá®ážáá±á¬á· ááá¯ááºáá«áá°ážá) á¥ááá¬á¡á¬ážááŒáá·áºá áá®ááá°ážááŸáá·áº ááááá¬áá¬ááŒáá·áº á á¬áá¬ážáá»á¬ážááᯠUTF-C ááŒáá·áº áá¯ááºáá¯ááºáá¬ážáááºá SCSU ááẠ60% ááá¯áá±á¬ááºážáá«áááºá (áááºážááá¯á·á áá±ážáááºáá±á¬ á¡áá¹ááá¬áá»á¬ážááŒá±á¬áá·áº ááŒá áºááá¯ááºáááº)á
áá®ážááŒá¬ážá¡áá±áá²á·á SCSU á¡ááŒáẠáá°áá®áá¯ááºááᯠáá»á
áºáá
áºááááºáááºážá
áœá¬ ááá¯ááºá
á¬ážááŒá¯ááá¯ááºáá²á· áá±á¬ááºáááºáááºážáááºážáá
áºáá¯áááºáž ááŸááá«áá±ážáááºá
ááá¯ážáááºááŸá¯ááŒá áºááá¯ááºáááºá
áá»áœááºá¯ááºáááºááŒááá·áº á¡ááºáááá¯áá®áááºááẠáá®ááá¯ááºážá¡á¬ážááŒáá·áº áá áºáá±á¬ááá¯á¶ážááá¯ááºáá« (á€áááºááŸá¬ áá»áœááºá¯ááºááááºááŸááºážáá»ááºáá»á¬ážááẠáá°áá®áá¯ááºáá¯ááºáááºážá á¯á áááºážááá¯ááºáá»á¬ážááŸáá·áº á¡áá»á¬ážá á¯ááœá²ááœá²áá±ááá·áº ááŒá áºááá¯ááºááŒá±ááŸááááº)á á¡áá¯ááºáá áºáá¯á¡ááœáẠ(áá¬áá¬áá±á«ááºážá á¯á¶ á¡áááá¬ááºááᯠááŸá±á·ááá·áá áºáááºááœáẠááááºážáááºážááŒááºáž)á áááºážáá¡ááºá¹áá«áááºá¡áá»áá¯á·ááẠá¡ááŒá¬ážá¡áá¯ááºáá»á¬ážá¡ááœáẠáá±á¬ááºážá áœá¬áááá·áºáá»á±á¬áºááŒá±á¬ááºáž áá»áœááºá¯ááºáá±á¬áºááŒáá²á·ááŒá®ážááŒá áºáááºá áá«áá±ááá·áº á á¶áá áºáá¯ááá¯ááºáá¬á á¡áá±á«ááºážááŒá áºááá¯ááºááẠááá·áºááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áº ááá¯ááºáá®á¡á±á¬áẠá¡ááœááºááá° ááŒá¯ááŒááºááá¯ááºáá«áááºá.
á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠááŒááºáááºááááºááŸáááŸá¯ááᯠáááºááŸá¬ážááá¯ááºááẠáááºááŸá¬ážáá±á¬áááºážáááºážááŒáá·áº ááá¯ááºáá¶áá²á·áá¯ááºááᯠááŒá¯áá¯ááºáá« - variable áá»á¬ážááᯠááœááºážáá¶áá¯á¶áᬠááŒá¯áá¯ááºáá«á offs
, auxOffs
О is21Bit
áá¯ááºáá¶áá«ááºááŸáá·áº áá®áá¯ááºáá«ááœááºá á€ááá
á¹á
ááœááºá áá°áá®áá±á¬á¡áá¹ááá¬áá»á¬ážá á¡ááœá²áá»á¬ážááᯠáááááá±á¬ááºáá±á¬ááºáá¯ááºááá¯ážáááºáááŒá
áºááá¯ááºáá±á¬áºáááºáž áá°áá®áá±á¬á¡áá¹ááá¬ááᯠáá°áá®áá±á¬ááá¯ááºáá»á¬ážááŒáá·áº á¡ááŒá²áááºážáá¯ááºáá¯ááºáá¬ážááŒá±á¬ááºáž á¡á¬ááá¶áá»ááºááŸááááºááŒá
áºáááºá
ááá¯á·á¡ááŒááºá áááºááẠáá¯ááºáá«ááᯠáá¯á¶áá±á¡ááŒá±á¡áá±ááá¯á·ááŒá±á¬ááºážááŒááºážááŒáá·áº áá®ážááŒá¬ážáá¬áá¬á
áá¬ážáá
áºáá¯ááá¯á· á¡á¶áááºááœááºáá»ááŒá
áºá
á±ááá¯ááºááẠ- á¥ááá¬á¡á¬ážááŒáá·áºá áá¯ááŸá¬ážá
á¬áá¬ážáá»á¬ážááᯠá¡á¬áá¯á¶á
áá¯ááºá á¡á
ááœáẠáá¯ááºáá«ááŸáá·áº áá®áá¯ááºáá«ááᯠáááºááŸááºáá«á offs = 0x0400
О auxOffs = 0
. á¡áá°ážáááŒáá·áº ááá¯ááºáá¶áá²á·áá¯ááºááœáẠáááºážááẠá¡áááá¹áá«ááºááŸááááºá áá±áá°áá»á¡á¬ážááŒáá·áºá áááºážááẠááŸá
áºáá
áºáá¯ááºáá¶áá«ááºá¡áá±á¬ááºážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŸáá·áº áááºáá°áá±á¬áºáááºáž ááá¯á¡ááºáááᯠáá°áá®áá¯ááºá¡á¬ážáá¯á¶ážá០á
á¬áá¯á¶ážáá»á¬ážááᯠááá·áºááœááºážááá¯ááºá
áœááºážááᯠáááºááŸá¬ážááŒááºážáááŒá¯áá²á
á¡á
á±á¬ááá¯ááºážááœááºáá±á¬áºááŒáá²á·ááá·áºáá±á¬ááºáááºá¡á¬ážáááºážáá»ááºááŸá¬ UTF-C ááœáẠáá¯ááºáá¯ááºáá¬ážáá±á¬ ááŒá®ážáá¬ážáá±á¬á
á¬áá¬ážááœáẠáááá¬ážáá±á¬ááá¯ááºáá
áºáá¯ááŸáá·áºá¡áá®ážáá¯á¶ážá
á¬áá¯á¶ážáááºááááááºááᯠá¡ááŒááºááŸá¬áááºáááºážáááºážáááŸááá«á á¡áááºá áááºááẠáá±á¬ááºáá¯á¶ážáá
áºáá¯á¡á¬áž áá¯ááºáá¯ááºáá¬ážáá±á¬ ááŒá¬ážáá¶á០100 bytes ááá¯ááŒááºáá«áá áááºááẠáá¬ááŸááá¯ááºááá¯ááºáá±á¬á·áá±á¬ á¡ááŸáá¯ááºáá»á¬ážááᯠáááŸáááẠá¡áá¹ááá¬ááºááŸááááºá áá¯ááºáá¶áá«ááºááẠmulti-gigabyte ááŸááºáááºážáá»á¬ážááᯠááááºážáááºážáááºá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážááŒááºážááá¯ááºáá±á¬áºáááºáž áá±áá¯áá»á¡á¬ážááŒáá·áº áááºážááᯠááŒá¯ááŒááºááá¯ááºáááºá ááá¯áẠ0xBF
áááááá¯ááºá¡ááŒá
Ạáááºáá±á¬á·á០ááá±á«áºááá°áž (áá«áá±ááá·áº áá¯ááá ááá¯á·ááá¯áẠááááááŒá
áºááá¯ááºáááº)á ááá¯á·ááŒá±á¬áá·áºá encoding áá¯ááºáá±á¬á¡áá«á áááºááẠsequence ááá¯ááá·áºááœááºážááá¯ááºáááºá 0xBF 0xBF 0xBF
áá
áºáá¯áá»ááºážá
á®á 10 KB - ááá¯á·ááá¯áá»áŸáẠáááºááẠáááºááááááºáá
áºáá¯ááᯠááŸá¬ááœá±ááẠááá¯á¡ááºáá«áá á¡áá¬ážáá° á¡ááŸááºá¡áá¬ážáá
áºáá¯ááᯠááŸá¬áááœá±á·ááá»ááºáž ááœá±ážáá»ááºáá¬ážáá±á¬á¡ááá¯ááºážááᯠá
áááºááºáááºááẠáá¯á¶áá±á¬ááºáááºááŒá
áºáááºá áá±á¬ááºáá¯á¶ážáá±á¬ááºááá¯áẠ0xBF
áá¬ááºáá±á¬ááºáá
áºáá¯áá¡á
ááŒá
áºáááºáá¯á¡á¬ááá¶áá«áááºá (áá¯ááºááœá²áá±á¬á¡áá«á á€áá¯á¶ážááá¯ááºáá¡á
á®á¡á
á¥áºááᯠáá»á
áºáá»á°ááŸá¯áá¬ážááẠááá¯á¡ááºáá«áááºá)
áááºááá»áŒážááŒá¯áá»
áá®áá±á¬ááºáááááºááŒá®ážááẠáá¯ááºáá°áá«áááºá áá°áá®áá¯ááºááœá²á·á ááºážáá¯á¶ááŸáá·áº áááºáááºá á¡áá áºá¡áááºáž (ááá¯á·ááá¯áẠááá·áºááŸááºáá¬ááºááᯠááŒááºáááºáááºážáá áºá á±áááº) ááá¯áááºáž áá»áœááºá¯ááºáá²á·ááá¯á· áááºáá»áŸá±á¬áºááá·áºáá«áááºá
áá®ááá¯á
á¬áá»ááºááŸá¬á Hebrew áá¥ááá¬ááẠUTF-8 ááŸáá·áº SCSU ááŸá
áºáá¯áá¯á¶ážáá¡á¬ážáá¬áá»ááºáá»á¬ážááá¯ááŒááááºá
á¡áááºáá±á¬áºááŒáá« áá¯áá±áááá»á¬ážááẠá
á¶ááŸá¯ááºážáá»á¬ážááᯠáááá«ážááŒááºážáᯠááá°áááá·áºáá«á ááá¯á·áá±á¬áºá áá»áœááºá¯ááºááẠáá»áœááºá¯ááºáá¡áá¯ááºáááááºáá»á¬ážááᯠáá±áá°áá»á¡á¬ážááŒáá·áº áá»á±áááºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááŸáá·áº á¡áá° áá»á±á¬áºááœáŸááºáá«áááºá
áá±á¬ááºáá¯á¶ážá¡áá±áá²á·á UTF-C ááᯠá¡áá¯á¶ážááŒá¯áá²á· ááá á¹á ááœá±ááᯠáá±á¬ááºáá áºááŒááẠá¡á¬áá¯á¶á áá¯ááºáá«áááºá áááá»áá¯ážáááºáá:
- ááá·áºá á¬ááŒá±á¬ááºážáá»á¬áž ááŸááºáá±áá«á (á á¬áá¯á¶ážáá± 100-200 ááŸ)á á€ááá á¹á ááœááºá deflate áá²á·ááá¯á·áá±á¬ compression algorithms ááá¯á¡áá¯á¶ážááŒá¯áááºá ááºážá á¬ážááá·áºáááºá
- ááá¯á¡ááºááẠASCII ááœáá·áºáááºážááŒááºáá¬ááŸá¯ááá¯ááá¯áááºááŸá¬á áá¯ááºáá¯ááºáá¬ážáá±á¬ sequences áá»á¬ážááœáẠáá°áááºážá á¬ááŒá±á¬ááºážááœááºáááŸááá±á¬ ASCII áá¯ááºáá»á¬ážááá«áááºááẠá¡áá±ážááŒá®ážáá«áááºá Third-party API áá»á¬áž (á¥ááá¬á áá±áá¬áá±á·á áºáá áºáá¯ááŸáá·áºá¡áá¯ááºáá¯ááºááŒááºáž) ááŸáá·áº á¡ááŒááºá¡ááŸááºáááºáá¶áá±á¬á¡áá«ááœááºá áááºááẠáá¯ááºááœááºážááŒááºážááááºááᯠabstract set of bytes á¡ááŒá áºááá¯ááºáá² strings áá»á¬ážáá²á·ááá¯á·ááá¯ááºáá«á áááºážá¡ááœáẠááá¯á¡ááºáá»ááºáá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááá¯ááºáá«áááºá ááá¯ááºáá«á áááºááẠááá»áŸá±á¬áºááá·áºáá¬ážáá±á¬ á¡á¬ážáááºážáá»ááºáá»á¬ážááᯠáááŸáááẠá¡áá¹ááá¬ááºááŸááááºá
- ááááºáááŸá¬áž á¡á±á¬á·ááºáááºááŒáá·áº áá¬ááºáá±á¬ááºáá±á¬ááºáá»á¬ážááᯠá¡ááŒááºááŸá¬ááœá±ááá¯áá«á (á¥ááá¬á á á¬ááŒá±á¬ááºážáá áºá áááºáá áºááá¯ááºáž áá»ááºá á®ážááœá¬ážáá±á¬á¡áá«)á áááºážááᯠá¡á á០á áááºááºáááºááŒááºážááŒáá·áºáᬠáá¯ááºáá±á¬ááºááá¯ááºááẠ(ááá¯á·ááá¯áẠááááºá¡ááá¯ááºážááœááºáá±á¬áºááŒáá¬ážáá±á¬ ááŒá¯ááŒááºááœááºážáá¶ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááŒááºáž)á
- á á¬ááŒá±á¬ááºážáá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáá»ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºááẠááá¯á¡ááºáá«á (áááºážááá¯á·ááᯠá á®áááºá áááºážááá¯á·ááŸá á á¬ááŒá±á¬ááºážááœá²áá»á¬ážááᯠááŸá¬ááœá±áá«á áá±á«ááºážááá·áºáá«)á áááºážááẠá á¬ááŒá±á¬ááºážáá»á¬ážááᯠáŠážá áœá¬áá¯á¶ážááẠááá¯á¡ááºáááºá ááá¯á·ááŒá±á¬áá·áº UTF-C ááẠá€ááá á¹á áá»á¬ážááœáẠUTF-8 ááẠááŸá±ážáá±áááá·áºááẠ(ááá¯á·áá±á¬áº compression algorithms ááẠááá¯ááŒááºáááº)á áá°áá®áá±á¬á á¬ááŒá±á¬ááºážááᯠá¡ááŒá²áá á± áá°áá®áá±á¬áááºážáááºážááŒáá·áº áá¯ááºáá¯ááºáá¬ážáá±á¬ááŒá±á¬áá·áºá á¡ááá¡áá» áá¯ááºááœá²ááŒááºážá á¡ááá¡áá» ááŸáá¯ááºážááŸááºááŸá¯ áááá¯á¡ááºáá² byte-by-byte á¡ááŒá±áá¶ááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáá«áááºá
á¡ááºááááº: á¡áá¯á¶ážááŒá¯áá°
source: www.habr.com