ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ исходного ΠΊΠΎΠ΄Π° Π²Π΅Π±-страниц ΠΈΠ»ΠΈ настройкС сСрвСрного окруТСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π·Π°Π³Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΌΠΈ записями, содСрТащими Ρ„Ρ€Π°Π·Ρƒ charset. Новички ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ тСхничСский ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ x-custom charset Π·Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ спСцифичСский стандарт кодирования, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… спСцификациях. На самом Π΄Π΅Π»Π΅, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ опрСдСлСния Π½Π°Π±ΠΎΡ€Π° символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ отобраТСния тСкста Π½Π° экранС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

НСвСрная интСрпрСтация этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ появлСнию «кракозябр» вмСсто Π±ΡƒΠΊΠ², Ρ‡Ρ‚ΠΎ критичСски сниТаСт Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ рСсурса. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° символов, позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ситуаций, ΠΊΠΎΠ³Π΄Π° вмСсто русского тСкста ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ бСссвязный Π½Π°Π±ΠΎΡ€ Π·Π½Π°ΠΊΠΎΠ². Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΎΡ‚ΠΊΡƒΠ΄Π° бСрСтся Ρ‚Π΅Ρ€ΠΌΠΈΠ½ x-custom, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π°-Ρ‚Π΅Π³ΠΈ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ стандарт UTF-8 являСтся Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для соврСмСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Ошибки Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ старых сайтов ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройкС сСрвСра Apache ΠΈ Nginx. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Π»ΠΎΠ³Π°Ρ… ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ x-custom, это Ρ‡Π°Ρ‰Π΅ всСго сигнал ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ систСма пытаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Π° символов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ со стандартами. Π”Π°Π²Π°ΠΉΡ‚Π΅ погрузимся Π² тСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш сайт отобраТался ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π² любой Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΌΠΈΡ€Π°.

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° x-custom ΠΈ стандарты ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ

Π’Π΅Ρ€ΠΌΠΈΠ½ x-custom Π² контСкстС ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ самим Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ систСмы, Π° Π½Π΅ Π½Π° общСпринятый стандарт. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ x- историчСски использовался Π² HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… ΠΈ конфигурациях для обозначСния ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ нСстандартных ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ charset, Ρ‚ΠΎ Ρ„Ρ€Π°Π·Π° Β«x-custom charsetΒ» часто появляСтся Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… CMS ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΊΠ°ΠΊ плСйсхолдСр, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Β«ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Ρƒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, которая Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π°Β», Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ….

Π’Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈ имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ зарСгистрированныС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ UTF-8, Windows-1251 ΠΈΠ»ΠΈ ISO-8859-1, ΠΈΠΌΠ΅ΡŽΡ‚ строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ названия Π² рССстрС IANA. Если Π² ΠΊΠΎΠ΄Π΅ встрСчаСтся конструкция, Π³Π΄Π΅ charset приравниваСтся ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ x-custom, это, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ошибка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ парсСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ смог ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ стандартный Π½Π°Π±ΠΎΡ€ символов ΠΈ ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ опрСдСлСния.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "x-custom" ΠΊΠ°ΠΊ фактичСскоС имя ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π½Π΅ Π·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст с Ρ‚Π°ΠΊΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ обозначСния для динамичСского ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² зависимости ΠΎΡ‚ языка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Однако Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°Π»ΠΈΠ΄Π½Ρ‹Π΅ значСния. ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструмСнты Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° выводят charset ΠΊΠ°ΠΊ x-custom, Ссли ΠΎΠ½ Π·Π°Π΄Π°Π½ Ρ‡Π΅Ρ€Π΅Π· нСстандартный HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚Π°-Ρ‚Π΅Π³ с ошибкой Π² синтаксисС.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…?
  • UTF-8
  • Windows-1251
  • ISO-8859-1
  • НС знаю, Ρ‡Ρ‚ΠΎ это

Роль ΠΌΠ΅Ρ‚Π°-Ρ‚Π΅Π³Π° meta charset Π² HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ способом_declaration_ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ для Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° являСтся использованиС Ρ‚Π΅Π³Π° <meta> Π²Π½ΡƒΡ‚Ρ€ΠΈ сСкции <head>. ИмСнно здСсь указываСтся, ΠΊΠ°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ€ символов Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π±Π°ΠΉΡ‚ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… с сСрвСра. Π’ соврСмСнных стандартах HTML5 синтаксис максимально ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ ΠΈ выглядит ΠΊΠ°ΠΊ <meta charset="UTF-8">. Π Π°Π½Π΅Π΅ использовался Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ http-equiv, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π² legacy-ΠΊΠΎΠ΄Π΅.

Если этот Ρ‚Π΅Π³ отсутствуСт ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Π½ Π½Π΅Π²Π΅Ρ€Π½ΠΎ, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ пытаСтся ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, анализируя содСрТимоС страницы. Π’Π°ΠΊΠΎΠΉ процСсс эвристики часто Π΄Π°Π΅Ρ‚ сбои, особСнно Ссли тСкст содСрТит смСсь языков ΠΈΠ»ΠΈ спСцифичСскиС символы. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π² инструмСнтах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ custom charset ΠΈΠ»ΠΈ нСизвСстной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅, Ρ‡Ρ‚ΠΎ являСтся прямым слСдствиСм отсутствия Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ инструкции ΠΎΡ‚ сСрвСра ΠΈΠ»ΠΈ HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ‚Π΅Π³Π° критичСски Π²Π°ΠΆΠ½ΠΎ. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡˆΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ <head>, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 1024 Π±Π°ΠΉΡ‚Π°Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ страницу ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΈ Ссли ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° измСнится Π² сСрСдинС процСсса, ΡƒΠΆΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ тСкст ΠΌΠΎΠΆΠ΅Ρ‚ Β«ΠΏΠΎΠ΅Ρ…Π°Ρ‚ΡŒΒ» ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ символы.

  • πŸ”Ή Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ UTF-8 обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ практичСски всСх языков ΠΌΠΈΡ€Π° ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов.
  • πŸ”Ή Π’Π΅Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ СдинствСнным Π½Π° страницС, Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ нСпрСдсказуСмому повСдСнию.
  • πŸ”Ή Атрибут charset рСгистронСзависим, Π½ΠΎ ΠΏΠΎ стандарту принято ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ Π² спСцификации.
πŸ’‘

ВсСгда добавляйтС Ρ‚Π΅Π³ meta charset сразу послС ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅Π³Π° head, Π΄ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ стилСй ΠΈ скриптов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π°Ρ‡Π°Π» parsing с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ настройками.

HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ настройки сСрвСра

Помимо HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, информация ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ пСрСдаСтся Ρ‡Π΅Ρ€Π΅Π· HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Content-Type. Π‘Π΅Ρ€Π²Π΅Ρ€ отправляСт эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ вмСстС с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. БинтаксичСски это выглядит ΠΊΠ°ΠΊ Content-Type: text/html; charset=utf-8. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ: настройки, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π²Π΅Π±-сСрвСра (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Apache ΠΈΠ»ΠΈ Nginx), часто ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Ρ‡Π΅ΠΌ ΠΌΠ΅Ρ‚Π°-Ρ‚Π΅Π³ΠΈ Π² HTML-ΠΊΠΎΠ΄Π΅.

Если Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСрвСра ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π½ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ экзотичСский ΠΈΠ»ΠΈ кастомный charset, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ написано Π² HTML-Ρ„Π°ΠΉΠ»Π΅. ИмСнно здСсь часто скрываСтся ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° появлСния странных ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² сСтСвых Π»ΠΎΠ³Π°Ρ…. Администраторы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²ΠΈΠ΄Π° x-custom-charset Π² скриптах настройки сСрвСра для Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ управлСния ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов, Π½ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ стандартноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Network. Π’Ρ‹Π±Ρ€Π°Π² основной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ index.html ΠΈΠ»ΠΈ сам URL), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. Если Ρ‚Π°ΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ UTF-8 ΠΈΠ»ΠΈ стандартной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ вашСго Ρ€Π΅Π³ΠΈΠΎΠ½Π°, трСбуСтся ΠΏΡ€Π°Π²ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²Π΅Π±-сСрвСра.

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π² Nginx?

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ nginx.conf ΠΈΠ»ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ server Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ: charset utf-8; charset_types text/html text/plain text/css application/javascript; Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ установит UTF-8 для ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ символов

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΆΠ°Π»ΡƒΡŽΡ‚ΡΡ Π½Π° «кракозябры» вмСсто тСкста, это Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ тСкста, Π½ΠΎ ΠΈ Π² Π²ΠΈΠ΄Π΅ Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°Ρ… ΠΈΠ»ΠΈ пустых ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². Π­Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π±Π°ΠΉΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Windows-1251), ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UTF-8).

Частой ошибкой являСтся рассогласованиС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ самого Ρ„Π°ΠΉΠ»Π° ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅. Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ физичСски сохранСн Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-8 Π±Π΅Π· BOM, Π½ΠΎ Π² HTML прописано charset=windows-1251. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚Ρ‹, ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚Π°-Ρ‚Π΅Π³ Π½Π΅ спасСт ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ лишь instructs Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Для диагностики ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Notepad++, VS Code ΠΈΠ»ΠΈ Sublime Text. Π’ Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ этих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ отобраТаСтся тСкущая ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΌ x-custom ΠΈΠ»ΠΈ нСизвСстный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Ρ„Π°ΠΉΠ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² UTF-8.

Π‘ΠΈΠΌΠΏΡ‚ΠΎΠΌ ВСроятная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
ВСкст Π² Π²ΠΈΠ΄Π΅ «РєБЂР°РєРѕР·БЏРІБЂ» UTF-8 читаСтся ΠΊΠ°ΠΊ Windows-1251 Π‘ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ просмотра Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π΅
Π’ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°Ρ… ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ символа Π² ΡˆΡ€ΠΈΡ„Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ символа Π² UTF-8
Π₯Π°ΠΎΡ‚ΠΈΡ‡Π½Ρ‹Π΅ символы ΠΈ ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„Ρ‹ ПолноС нСсоотвСтствиС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² UTF-8 ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ meta-Ρ‚Π΅Π³
ΠžΠ±Ρ€Ρ‹Π²ΠΊΠΈ тСкста Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках БмСшСниС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ
Ошибки Π² JSON/XML ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… НСвСрный Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Content-Type ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСрвСр Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ charset=utf-8

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ PHP

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с charset часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ взаимодСйствии с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Если ваш сайт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° PHP ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ MySQL, критичСски Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° всСх уровнях: Ρ„Π°ΠΉΠ», соСдинСниС с Π‘Π”, сама Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² Π‘Π” ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰Π°ΡΡΡ ошибка β€” ΠΊΠΎΠ³Π΄Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² Π±Π°Π·Π΅ создана Π² utf8mb4, Π° соСдинСниС устанавливаСтся Π² latin1.

Π’ PHP для установки ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ соСдинСния сразу послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Для mysqli это выглядит ΠΊΠ°ΠΊ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° set_charset(). Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого шага ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ русскиС Π±ΡƒΠΊΠ²Ρ‹, сохранСнныС Π² Π±Π°Π·Π΅, ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² HTML-ΠΊΠΎΠ΄.

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ установки ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² PHP

$mysqli->set_charset("utf8mb4");

// Или Ρ‡Π΅Ρ€Π΅Π· SQL-запрос

$mysqli->query("SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'");

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ utf8mb4 являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ стандартом для MySQL, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ UTF-8, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Π±Π°ΠΉΡ‚Π½Ρ‹Π΅ символы (эмодзи, Ρ€Π΅Π΄ΠΊΠΈΠ΅ ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„Ρ‹), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ старый Ρ‚ΠΈΠΏ utf8 Π² MySQL являСтся ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€Π΅Ρ…Π±Π°ΠΉΡ‚Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ сайта

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 1

ВлияниС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° SEO ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ

ΠŸΠΎΠΈΡΠΊΠΎΠ²Ρ‹Π΅ систСмы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Google ΠΈ Yandex, ΡƒΠ΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ тСхничСской коррСктности сайта. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ для SEO. Если Ρ€ΠΎΠ±ΠΎΡ‚ Π½Π΅ смоТСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ содСрТимоС страницы ΠΈΠ·-Π·Π° ошибок charset, ΠΎΠ½ проиндСксируСт Β«ΠΊΠ°ΡˆΡƒΒ» ΠΈΠ· символов вмСсто вашСго ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ рСлСвантности ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ запросам.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ страниц с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли сСрвСр ΠΎΡ‚Π΄Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ Π² UTF-8, ΠΈ Π² Windows-1251 ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ URL ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ расцСнСно поисковиком ΠΊΠ°ΠΊ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. Π­Ρ‚ΠΎ Ρ€Π°Π·ΠΌΡ‹Π²Π°Π΅Ρ‚ ссылочный вСс ΠΈ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ сайта Π² Π²Ρ‹Π΄Π°Ρ‡Π΅. Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ тСкста β€” Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ ранТирования.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ явного указания ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ заставляСт поискового Ρ€ΠΎΠ±ΠΎΡ‚Π° Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ рСсурс сканирования Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° тСкста, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ Π½ΠΎΠ²Ρ‹Ρ… страниц сайта.

РСкомСндуСтся рСгулярно ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°ΡƒΠ΄ΠΈΡ‚ сайта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов для вСбмастСров. Они способны ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° страницы, Π³Π΄Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π³Π΄Π΅ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ отобраТаСтся Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° стандарт UTF-8 являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для любого соврСмСнного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π° высокиС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² поискС.

πŸ’‘

Единая ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° UTF-8 Π½Π° всСх уровнях (Ρ„Π°ΠΉΠ»Ρ‹, сСрвСр, Π‘Π”, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€) β€” это Π±Π°Π·Π° тСхничСской ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ SEO.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ x-custom Π² Π»ΠΎΠ³Π°Ρ… сСрвСра?

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСрвСр ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нСстандартноС, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’ контСкстС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ это часто ошибка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π³Π΄Π΅ вмСсто Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UTF-8) подставлСна пСрСмСнная-Π·Π°Π³Π»ΡƒΡˆΠΊΠ°.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Windows-1251 сСгодня?

ВСхничСски ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ это считаСтся ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ. UTF-8 являСтся ΠΌΠΈΡ€ΠΎΠ²Ρ‹ΠΌ стандартом, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ всС языки. ИспользованиС старых ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ отобраТСния ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ….

Как ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сайт с ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ?

НСобходимо ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² UTF-8 (Π±Π΅Π· BOM), ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ALTER DATABASE ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°-Ρ‚Π΅Π³ΠΈ Π² HTML. ПослС этого трСбуСтся Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° отобраТСния всСх страниц.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² HTML5 ΡƒΠ±Ρ€Π°Π»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ type Π² meta-Ρ‚Π΅Π³Π΅?

Π’ HTML5 синтаксис упростили. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ <meta charset="UTF-8">. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π½ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ являСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для Π½ΠΎΠ²ΠΎΠΉ вСрстки.