Nginx / apache рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ "Correct" utf-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА, рдЬреИрд╕рд╛ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рдереНрд░реЗрдбреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рдорд╕реНрдпрд╛ рдХрд╛рдлреА рдЖрдо рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: nginx / apache рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЧрд▓рдд utf-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд╛рдоред рдЗрд╕реА рд╕рдордп, рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИред



рдЕрдХреНрд╕рд░, рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕, рдЬрдм рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдпрд╛ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдкреА рдХрд░реЗрдВред рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ "рдорд╛рдЗрдЧреНрд░реЗрдЯ" рдЙрдирдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдПред рдирдЧрдиреЗрдХреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИ:
charset utf8;

рдЕрдкрд╛рдЪреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╣реИ:
<рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / рдкрде / рд╕реЗ / рд╕рд╛рдЗрдЯ />
AddDefaultCharset UTF8
</ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛>

рддреЛ - utf8 рдЬреИрд╕реА рдХреЛрдИ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ! рд╕рд╣реА рдврдВрдЧ рд╕реЗ utf-8 (рдПрдХ рд╣рд╛рдЗрдлрд╝рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд▓рд┐рдЦреЗрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕> = 3, рдУрдкреЗрд░рд╛> = 9, рдХреНрд░реЛрдо> = 4, рд╕рдлрд╛рд░реА> = 4) utf8 рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рдлрд╛рджрд╛рд░ рд╣реИрдВ, рдФрд░ рд╡рд┐рддрд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдг (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдирд╡реАрдирддрдо, 9 рд╡реЗрдВ рд╕рд╣рд┐рдд) ) рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ "рдмрджрдорд╛рд╢" рджреЗрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдпрд╣ рд╕реНрдерд┐рддрд┐ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдареАрдХ рдХрд┐рдП рдмрд┐рдирд╛ рднреА рддрд┐рд░рд╕реНрдХреГрдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╢реАрд░реНрд╖ рд▓реЗрдЦ ( 'рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░: рдкрд╛рда / html; рдЪрд╛рд░рд╕реЗрдЯ = utf-8' );

рдпрд╛ HTML рдореЗрдВ рдирд┐рдореНрди рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
< рдореЗрдЯрд╛ http-equiv = "рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░" рд╕рд╛рдордЧреНрд░реА = "рдкрд╛рда / html; рдЪрд╛рд░рд╕реЗрдЯ = utf-8" />

рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рддрд┐ рдЬрдЯрд┐рд▓ рд╣реИ, рдЬрдм AJAX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред JQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг:
$ ( рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ )ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ( рдлрд╝рдВрдХреНрд╢рди ) ({
рд╕рдорд╛рд░реЛрд╣ Print_r ()
{
// ...
}
$ .jax ({
url: "/test.txt" ,
рдбреЗрдЯрд╛ рдЯрд╛рдЗрдк : "рдЯреЗрдХреНрд╕реНрдЯ" ,
рд╕рдлрд▓рддрд╛: рдлрд╝рдВрдХреНрд╢рди (рдбреЗрдЯрд╛, рдЯреЗрдХреНрд╕реНрдЯрд╕реНрдЯреИрдЯрд╕) {
$ ( '#res' ) .html (рдбреЗрдЯрд╛);
}
рддреНрд░реБрдЯрд┐: рдлрд╝рдВрдХреНрд╢рди (jqXHR, textStatus, errorThrown) {
$ ( '#res' ) .html ( 'jqXHR:' + print_r (jqXHR) + '<br /> textStatus:' + textStatus + '<br /> errorThrown:' Print_r (errorThrown));
}
});
});

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, IE рдирд┐рдореНрди рдкреНрд░рдХреГрддрд┐ рдХреА рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
{
jqXHR: {
рддреИрдпрд╛рд░: 4,
рд╕реНрдерд┐рддрд┐: 0,
рд╕реНрдЯреЗрдЯрд╕ рдЯреЗрдХреНрд╕реНрдЯ: 'рддреНрд░реБрдЯрд┐'
}
textStatus: 'рддреНрд░реБрдЯрд┐' ,
рддреНрд░реБрдЯрд┐
рдирд╛рдо: 'рддреНрд░реБрдЯрд┐' ,
рд╕рдВрдЦреНрдпрд╛: -1072896658,
рд╡рд┐рд╡рд░рдг: 'рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред C00ce56e рддреНрд░реБрдЯрд┐ред ' ред
рд╕рдВрджреЗрд╢: 'рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред C00ce56e рддреНрд░реБрдЯрд┐ред '
}
}

рдпрд╣ JS рдПрд░рд░ рдХрд╛рдлреА рдиреЙрдЯреАрд╡рд┐рдпрд▓ рд╣реИред рдФрд░ рдпрджрд┐ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рддреБрд░рдВрдд рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ, рддреЛ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рд╡реЗ рдШрдмрд░рд╛рд╣рдЯ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рд░рдг рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рд▓реЗрддреЗ рд╣реИрдВред

PS рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрдм MySQL рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╣реИ:
рд╕реЗрдЯ NAMES utf8

рд╡реИрд╕реЗ рднреА, рдЬрд╣рд╛рдБ рднреА utf-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:
рдмрдирд╛рдПрдБ рддрд╛рд▓рд┐рдХрд╛ `some_table` (...) рдЗрдВрдЬрди = innoDB DEFAULT CHARSET = utf8

рдПрдиреНрдХреЛрдбрд┐рдВрдЧ utf8 рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, utf-8 рдирд╣реАрдВред рдпрд╣реА рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд┐рдХреЙрд░реНрдб рдПрдХ рд╣рд╛рдЗрдлрд╝рди рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рднреА рдЕрдзрд┐рдХ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдЕрд╕рдВрдЧрддрд┐ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ ...


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


All Articles