рдСрдЯреЛ рдЯреЗрдХреНрд╕реНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ

рдЫрд╡рд┐

рдкрд░рд┐рдЪрдп


рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд╕рдВрдж рд╣реИ, рдореИрдВ рдПрдХ рд╢реМрдХрд┐рдпрд╛ рд╣реВрдВ рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдФрд░ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдореИрдВрдиреЗ 1996 рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рдкреИрд╕рд╛ рдХрдорд╛рдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдореИрдВ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓рд┐рдЦрддрд╛ рд╣реВрдВред рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЧреЛрд▓рдВрдЧ рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ рдереАред рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЧреЛрд▓рдВрдЧ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдХрд▓рд╛ред So.


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


рдбреЗрдЯрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ CSV, рдХреЗрд╡рд▓ рдЯреИрдм рд╕реАрдорд╛рдВрдХрдХ рдпрд╛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИред


рдФрд░ рд╣реЗрдбрд┐рдВрдЧ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдЖрдорддреМрд░ рдкрд░ рд░реВрд╕реА рдЯреЗрдХреНрд╕реНрдЯ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдлрд╝реАрд▓реНрдб рдХрд╛ рдирд╛рдо, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдЕрдзреНрдпрдпрди рдХрд╛ рдирд╛рдо рдЖрджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдкрд░ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдлрд╝рд╛рдЗрд▓ рднрд╛рдЧ рдореЗрдВ CP1251, рдФрд░ CP866 рдореЗрдВ рднрд╛рдЧ рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реИред рдореБрдЭреЗ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╕рдордЭрдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред


рдирддреАрдЬрддрди, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЧреЛрд▓рдВрдЧ рдкрд░ рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдПрдХ рдХреЛрдб рдХреЛрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред


рдПрдирдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рд╣рдмреНрд░ рдкрд░ рдПрдирдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ рдПрдирдХреЛрдбрд┐рдВрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред "рдордЧрд░рдордЪреНрдЫ" рдХрд╣рд╛рдБ рд╕реЗ рдЖрддреЗ рд╣реИрдВред рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддред рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдгред рдпрджрд┐ рдЖрдк рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ "рд╣рдбреНрдбрд┐рдпрд╛рдВ" рдпрд╛ "рд╣рдбреНрдбрд┐рдпрд╛рдВ" рдХреНрдпрд╛ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИред


рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдлреИрд╕рд▓рд╛ рдлреЗрдВрдХ рджрд┐рдпрд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдЧреЛрд▓рдВрдЧ рдкрд░ рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЕрд╕рдлрд▓ рд░рд╣рд╛ред рджреЛ рд╕рдорд╛рдзрд╛рди рдереЗ, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗред


  • рдкрд╣рд▓рд╛ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рд╣реИ golang.org/x/net/html/charset рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрдзрд╛рд░рдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ ()
  • рджреВрд╕рд░рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп - рдЬреАрдердм рдкрд░ рд╕рдВрддрдлрд╝рд┐рд╢ / рдЪрд╛рд░рдбреЗрдЯ

рджреЛрдиреЛрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдПрдирдХреЛрдбрд┐рдВрдЧ рдкрд░ рдЧрд▓рдд рд╣реИрдВред рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдпрд╣ HTML рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЕрдХреНрд╕рд░ рд▓рд╛рдЗрдирдХреНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рддреИрдпрд╛рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдореЗрдВ рдЖрдпрд╛ - рдПрдВрдХрд╛ ред рдЗрд╕рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ Win32, рд╕рдВрд╕реНрдХрд░рдг 1.12 рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдкрд╛рдпрд╛ред рдореИрдВ рдЗрд╕ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛, рд╡рд╣рд╛рдВ рдордЬреЗрджрд╛рд░ рдЪреАрдЬреЗрдВ рд╣реИрдВред рдореИрдВ рдЕрдкрдиреА рдкреВрд░реА рдЕрдЬреНрдЮрд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ рдХрд┐ рдЖрдк рдЧреЛрд▓рдВрдЧ рдХреЛрдб рдХреЛ рднреА рдкреЗрдВрдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЕрдм рдФрд░ рдирд╣реАрдВ рджреЗрдЦрд╛ред


рдСрдЯреЛ-рдбрд┐рдЯреЗрдХреНрд╢рди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╛рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛


рд╡рд┐рднрд┐рдиреНрди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрдЯрд▓реЙрдЧ рд╕реЙрдлреНрдЯрд▓реИрдВрдбрд┐рдпрд╛ \ cpd рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдмрд╣реБрдд рдХрдо рд╣реИ рдФрд░ рд╕рдорд╛рди рд╣реИред рдПрдХ рд▓рд╛рдЗрди "рдХреЛрдбрд┐рдВрдЧ рдХреЛрдбрдиреЗрдо рдореЗрдВ рд░реВрд╕реА"ред рдореИрдВрдиреЗ рдПрдирдХреЛрдбрд┐рдВрдЧ рдФрд░ рдХреБрдЫ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реАрдВ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдордЬрд╛рдХрд┐рдпрд╛ рдирд┐рдХрд▓рд╛ред


#рдПрдиреНрдХреЛрдбрд┐рдВрдЧhtml / рдЪрд╛рд░рд╕реЗрдЯsaintfish / chardetрд╕реЙрдлреНрдЯрд▓реИрдВрдбрд┐рдпрд╛ / рд╕реАрдкреАрдбреАENCA
1CP1251windows-1252CP1251CP1251CP1251
2CP866windows-1252windows-1252CP866CP866
3рдХреЗрдУрдЖрдИ8-рдЖрд░windows-1252рдХреЗрдУрдЖрдИ8-рдЖрд░рдХреЗрдУрдЖрдИ8-рдЖрд░рдХреЗрдУрдЖрдИ8-рдЖрд░
4рдЖрдИрдПрд╕рдУ-8859-5windows-1252рдЖрдИрдПрд╕рдУ-8859-5рдЖрдИрдПрд╕рдУ-8859-5рдЖрдИрдПрд╕рдУ-8859-5
5рдмреАрдУрдПрдо рдХреЗ рд╕рд╛рде рдпреВрдЯреАрдПрдл -8utf-8utf-8utf-8utf-8
6рдпреВрдЯреАрдПрдл -8 рдмрд┐рдирд╛ рдмреАрдУрдПрдо рдХреЗutf-8utf-8utf-8utf-8
7BOM рдХреЗ рд╕рд╛рде UTF-16LEUTF-16LEUTF-16LEUTF-16LEрдЖрдИрдПрд╕рдУ 10646-рдпреВрд╕реАрдПрд╕ -2
8UTF-16LE рдмрд┐рдирд╛ BOM рдХреЗwindows-1252ISO-8859-1UTF-16LEрдЕрдЬреНрдЮрд╛рдд
9BOM рдХреЗ рд╕рд╛рде UTF-16BEUTF-16LEutf-16beutf-16beрдЖрдИрдПрд╕рдУ 10646-рдпреВрд╕реАрдПрд╕ -2
10рдмрд┐рдирд╛ BOM рдХреЗ UTF-16BEwindows-1252ISO-8859-1utf-16beрдЖрдИрдПрд╕рдУ 10646-рдпреВрд╕реАрдПрд╕ -2
11BOM рдХреЗ рд╕рд╛рде UTF-32LEUTF-16LEutf-32leutf-32leрдЖрдИрдПрд╕рдУ 10646-рдпреВрд╕реАрдПрд╕ -4
12рдмрд┐рдирд╛ BOM рдХреЗ UTF-32LEwindows-1252utf-32leutf-32leрдЖрдИрдПрд╕рдУ 10646-рдпреВрд╕реАрдПрд╕ -4
13BOM рдХреЗ рд╕рд╛рде UTF-32BEwindows-1252utf-32beutf-32beрдЖрдИрдПрд╕рдУ 10646-рдпреВрд╕реАрдПрд╕ -4
14рдмрд┐рдирд╛ BOM рдХреЗ UTF-32BEwindows-1252utf-32beutf-32beрдЖрдИрдПрд╕рдУ 10646-рдпреВрд╕реАрдПрд╕ -4
15KOI8-R (UPPER)windows-1252рдХреЗрдУрдЖрдИ8-рдЖрд░рдХреЗрдУрдЖрдИ8-рдЖрд░CP1251
16CP1251 (UPPER)windows-1252CP1251CP1251рдХреЗрдУрдЖрдИ8-рдЖрд░
17CP866 рдФрд░ CP1251windows-1252CP1251CP1251рдЕрдЬреНрдЮрд╛рдд

рдЕрд╡рд▓реЛрдХрди рез


enca рдиреЗ рдмрд┐рдирд╛ BOM рдХреЗ UTF-16LE рдлрд╝рд╛рдЗрд▓ рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ - рдпрд╣ рдЕрдЬреАрдм рд╣реИ, рдареАрдХ рд╣реИред рдореИрдВрдиреЗ рдЕрдзрд┐рдХ рдкрд╛рда рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛ред


рдЕрд╡рд▓реЛрдХрди 2. рдХреЛрдбрд┐рдВрдЧ CP1251 рдФрд░ KOI8-R рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ


рд▓рд╛рдЗрдиреЗрдВ 15 рдФрд░ 16. enca рдХрдорд╛рдВрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред
рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХрд░реВрдВрдЧрд╛, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдирдХреЛрдбрд┐рдВрдЧ CP1251 (рдЙрд░реНрдл рд╡рд┐рдВрдбреЛрдЬ 1251) рдФрд░ рдХреЛрдП 8-рдЖрд░ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИрдВ рдЕрдЧрд░ рд╣рдо рдХреЗрд╡рд▓ рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╡рд░реНрдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред


рдЯреЗрдмрд▓ рд╕реАрдкреА 1251


рдЫрд╡рд┐


KOI8-r рддрд╛рд▓рд┐рдХрд╛


рдЫрд╡рд┐


рджреЛрдиреЛрдВ рдПрдиреНрдХреЛрдбрд┐рдВрдЧреНрд╕ рдореЗрдВ, рд╡рд░реНрдгрдорд╛рд▓рд╛ 0xC0 рд╕реЗ 0xFF рддрдХ рд╕реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рдПрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдЕрдкрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░ рд╣реИрдВ, рддреЛ рджреВрд╕рд░реЗ рдореЗрдВ рд▓реЛрдЕрд░рдХреЗрд╕ рд╣реИред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдПрдирд╛ рд▓реЛрдЕрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдпрджрд┐ рдЖрдк CP1251 рдореЗрдВ рдПрдиреНрдХрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ "STP" рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддрдп рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ KOI8-r рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ "vehemently" рд╣реИ, рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрд▓реНрдЯрд╛ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


рдЕрд╡рд▓реЛрдХрди рей


Html / рдЪрд╛рд░рд╕реЗрдЯ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдХреЗрд╡рд▓ UTF-8 рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рд╣реА рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ! рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ charset.DetermineEncoding () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ utf8.Valid (b [] рдмрд╛рдЗрдЯ) utf-16be рдПрдиреНрдХреЛрдбреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╡рд┐рдзрд┐ рд╕рд╣реА рд╣реИ ред


рдЦреБрдж рдХреА рдмрд╛рдЗрдХ


рдЫрд╡рд┐


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


рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдерд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдПрдирдХреЛрдбрд┐рдВрдЧ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рд░реВрд╕реА рд╣реИред рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЖрдкрдХреЛ рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - 10 рд╡рд░реНрдгреЛрдВ рдореЗрдВ рдХрд╛рдлреА рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ 5-6 рд╡рд░реНрдгред


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


рдЬрдм рдореИрдВрдиреЗ рдПрдирдХреЛрдбрд┐рдВрдЧ KOI8-r рдФрд░ CP1251 рдХреЗ рд╕рдВрдпреЛрдЧ рдХреЛ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд╕реНрдерд╛рди рд╕реЗ рдЦреЛрдЬрд╛, рддреЛ рдореИрдВ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╕ рдерд╛ ... рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдирд┐рдХрд▓рд╛ред


рдореБрдЦреНрдп рдирд┐рд░реНрдгрдп:


  1. рд╣рдо рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдПрдХ рд╕реНрд▓рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, charset.DetermineEncoding рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП ()
  2. UTF-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдФрд░ BOM рдорд╛рдорд▓реЛрдВ рдХреА рдЕрд▓рдЧ рд╕реЗ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ
  3. рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рдпрдВ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рдирджрдВрдб рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЬрд┐рд╕рдХрд╛ рджреЛ рдорд╛рдкрджрдВрдб рдЕрдзрд┐рдХ рд╣реИ, рд╡рд╣ рдЬреАрддрд╛ред

рдЕрдиреБрдкрд╛рд▓рди рдорд╛рдирджрдВрдб


рдкрд╣рд▓реА рдХрд╕реМрдЯреА


рдкрд╣рд▓рд╛ рдорд╛рдирджрдВрдб рд░реВрд╕реА рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред


рд╕рдмрд╕реЗ рдЖрдо рдЕрдХреНрд╖рд░ рд╣реИрдВ: рдУ, рдИ, рдП, рдФрд░, рдПрди, рдЯреА, рдПрд╕, рдкреА, рдмреА, рдПрд▓, рдХреЗ, рдПрдо, рдбреА, рдкреА, рд╡рд╛рдИ ред рдпреЗ рдкрддреНрд░ 82% рдХрд╡рд░реЗрдЬ рджреЗрддреЗ рд╣реИрдВред KOI8-r рдФрд░ CP1251 рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ 9 рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛: рдУ, рдИ, рдП, рдФрд░, рдПрди, рдЯреА, рдПрд╕, рдкреА, рд╕реАред рдпрд╣ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред


рд▓реЗрдХрд┐рди KOI8-r рдФрд░ CP1251 рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдлрд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрддреНрд░реЛрдВ рдХреЗ рдХреЛрдб рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрддреНрд░ o рдореЗрдВ CP1251 рдореЗрдВ рдХреЛрдб 0xEE рд╣реИ, рдЬрдмрдХрд┐ KOI8-r рдореЗрдВ рдЗрд╕ рдХреЛрдб рдореЗрдВ рдЕрдХреНрд╖рд░ n рд╣реИ ред рдЗрди рдПрдирдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЛрдХрдкреНрд░рд┐рдп рдкрддреНрд░ рд▓рд┐рдП рдЧрдП рдереЗред CP1251 рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ a, and, n, c, p, b, l, k, i рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдХреЛрдЗ 8-рдЖрд░ рдХреЗ рд▓рд┐рдП - рдУ, рдП, рдпреВ, рдЯреА, рдПрд╕, рдмреА, рдПрд▓, рдХреЗ, рдПрдоред


рджреВрд╕рд░реА рдХрд╕реМрдЯреА


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╣реБрдд рдХрдо рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП (рд░реВрд╕реА рдкрд╛рда рдХреА рдХреБрд▓ рд▓рдВрдмрд╛рдИ 5-6 рдЕрдХреНрд╖рд░ рд╣реИ), рд▓реЛрдХрдкреНрд░рд┐рдп рдкрддреНрд░реЛрдВ рдХреА рдШрдЯрдирд╛ 1-3 рдкреАрд╕реА рдХреЗ рд╕реНрддрд░ рдкрд░ рд╣реИ рдФрд░ рдХреЛрдУ 8-рдЖрд░ рдФрд░ рд╕реАрдкреА 1251 рдПрдирдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдУрд╡рд░рд▓реИрдк рд╣реИред рдореБрдЭреЗ рдПрдХ рджреВрд╕рд░реА рдХрд╕реМрдЯреА рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рдерд╛ред рд╡реНрдпрдВрдЬрди + рд╕реНрд╡рд░ рдЧрд┐рдирддреА ред
рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдпреЛрдЬрди рд░реВрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЙрд╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рдРрд╕реЗ рдЬреЛрдбрд╝реЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реИ, рдЙрд╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреА рдПрдХ рдмрдбрд╝реА рдХрд╕реМрдЯреА рд╣реИред


рджреЛрдиреЛрдВ рдорд╛рдирджрдВрдбреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИ рдФрд░ рдкреНрд░рд╛рдкреНрдд рд░рд╛рд╢рд┐ рдЕрдВрддрд┐рдо рдорд╛рдирджрдВрдб рд╣реИред
рдкрд░рд┐рдгрд╛рдо рдКрдкрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЬрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдореИрдВрдиреЗ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛


рдЧреЛрд▓рдореЛрд▓ рдФрд░ рдЧреЛрд▓рдВрдЧ рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реНрдкрд░реНрд╢ред рдпрд╣ рдЦрдВрдб рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреЛрд▓рдВрдЧ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рд╕рдорд╕реНрдпрд╛рдУрдВ


рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЧреЛ рдХреЗ 50 рд░рдВрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╛рдиреА рдХреЗ рдиреАрдЪреЗ рдХреЗ рдХрдВрдХрдбрд╝ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЪрд▓реЗ рдЧрдП : рдЬрд╛рд▓, рдиреБрдХрд╕рд╛рди рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╢реБрд░реБрдЖрдд рдХреА рдЧрд▓рддрд┐рдпрд╛рдБ ред
рдЕрддреНрдпрдзрд┐рдХ рдЪрд┐рдВрддрд╛ рдФрд░ рдкрд╛рдиреА рдореЗрдВ рдЙрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛, рджреВрдз рд╕реЗ рднрдпрд╛рдирдХ рдЬрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреВрд╕рд░реЛрдВ рд╕реЗ рд╕реБрдирдирд╛, io.Reader рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рджреВрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд╕рд╛рде io.Reader рдЬреИрд╕реЗ рдПрдХ рдЪрд░ рдХреА рдЬрд╛рдБрдЪ рдХреАред


//CodePageDetect - detect code page of ascii data from reader 'r' func CodePageDetect(r io.Reader, stopStr ...string) (IDCodePage, error) { if !reflect.ValueOf(r).IsValid() { return ASCII, fmt.Errorf("input reader is nil") } ... 

рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд┐рдХрд▓рд╛, рдпрд╣ рд╢реВрдиреНрдп рдкрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЕрдм рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИ


 func CodePageDetect(r io.Reader, stopStr ...string) (IDCodePage, error) { //test input interfase if r == nil { return ASCII, nil } //make slice of byte from input reader buf, err := bufio.NewReader(r).Peek(ReadBufSize) if (err != nil) && (err != io.EOF) { return ASCII, err } ... 

bufio.NewReader (r) рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ .Peek (ReadBufSize) рдЪреБрдкрдЪрд╛рдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реАрдХреНрд╖рд╛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ:


  var data *os.File res, err := CodePageDetect(data) 

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, Peek () рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред


рдПрдХ рдмрд╛рд░ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд░реЗрдХ рдкрд░ рдХрджрдо рд░рдЦрд╛ред рдирдХреНрд╢реЗ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдкрд░ рдереЛрдбрд╝рд╛ рдмреЗрд╡рдХреВрдл, рд░реЗрдВрдЬ рдореЗрдВ рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ ...


рдЖрдХрд░реНрд╖рдг


рдпрд╣ рдареАрдХ рд╕реЗ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд▓рд┐рдВрдЯрд░ рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдорд┐рд▓рд╛рддреЗ рд╣реБрдП рд╣рд╛рде рдпрд╛ рд░реЗрдВрдЬ рдХрд╛ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ, рдпрд╛ рд╕рднреА рдПрдХ рд╕рд╛рде рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЪреАрд░рд╛ рдирд╣реАрдВ рд╣реИред


рдмреЗрд╢рдХ, рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рд╕реНрдореГрддрд┐ рдХреЗ рдЖрд╡рдВрдЯрди / рд░рд┐рд▓реАрдЬ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдиреИрддрд┐рдХ рдореБрд╕реНрдХрд╛рди рдЙрдирдХреЗ рдЪреЗрд╣рд░реЗ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝рддреА рд╣реИред
рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рднреА рдЦреБрд╢реА рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИред


рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд▓реЗ рдЪрд░, рддрджрдиреБрд╕рд╛рд░, рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред


рдбрд┐рдмрдЧрд░ рдореЗрдВ рдмреИрдардиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ, рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред


рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдХрд░рдг рд╣реЛрдиреЗ рд╕реЗ рдЦреБрд╢, рдХрдВрдкрд╛рдЗрд▓рд░, рднрд╛рд╖рд╛, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдЖрдИрдбреАрдИ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдЬрдм рдЖрдк рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЕрджреНрднреБрдд рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИред


рд░рдЪрдирд╛рддреНрдордХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдмрд╛рдЬрд╝ ред
рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж


  1. рдЧрд╡рд╛рд╣реА рдкрд░ рдЕрдиреБрд╡рд╛рджрд┐рдд рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрди рдЧрдП
  2. рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рдкрд░реАрдХреНрд╖рдг
  3. рдПрдХ рд▓рд┐рдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛ рдЧрдпрд╛ - рдлрд┐рд░ рднреА рдЙрд╕реЗ рдПрдХ рдЕрд╕рд▓реА рдЧрд▓рддреА рдорд┐рд▓реА (рд▓рд╛рдирдд / рдЕрддреАрдд)

рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВ, UTF16 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рдерд╛ред рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдм рд░реВрд╕реА рдЕрдХреНрд╖рд░реЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА UTF16 рдФрд░ LE рдФрд░ BE рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

Source: https://habr.com/ru/post/hi483166/


All Articles