Php встановити кодування сторінки. Вирішення проблем неправильним кодуванням веб-сторінки. Кодування символів та мова

💖 Подобається?Поділися з друзями посиланням

Влад Мержевич

Метатеги використовуються для зберігання інформації, призначеної для браузерів і пошукових систем. Наприклад, механізми пошукових систем звертаються до метатегів для отримання опису сайту, ключових слів та інших даних.

Метатеги для пошукових механізмів

Серед розробників сайтів існує думка, що правильно написані метатеги дозволяють піднятися до верхніх рядків пошукових серверів. Насправді це не так, на одних метатегах високо не піднімешся, але й невдало виконаний вміст метатегів може погіршити рейтинг сайту.

Два метатеги призначені спеціально для пошукових серверів: description (опис) та keywords (ключові слова). Деякі вебмайстри додавали в розділ keywords ключові слова, які не мають жодного відношення до теми сайту, але користувалися певним успіхом серед відвідувачів пошукових систем. Однак через деякий час пошукові системи навчилися боротися з таким явищем і перевіряють вміст веб-сторінки на відповідність заявленим ключовим словам.

Деякі принципи, що стосуються метатегів:

  • не включайте ключові слова, які не містяться на ваших сторінках;
  • не повторюйте ключові слова;
  • використовуйте метатеги щодо їх прямого призначення;
  • робіть опис та список ключових слів різними для кожної сторінки сайту з урахуванням вмісту.

description

Більшість пошукових серверів відображають вміст поля description (приклад 1) під час виведення результатів пошуку. Якщо цього тега немає на сторінці, то пошуковий движок просто перерахує перші слова, що зустрічаються на сторінці, які, як правило, виявляються не дуже-то і в тему.

Приклад 1. Використання Description

description

keywords

Цей метатег був призначений для опису ключових слів на сторінці (приклад 2). Але в результаті дії людей, які бажають потрапити у верхні рядки пошукових систем будь-якими засобами, тепер дискредитовано. Тому багато пошукових систем пропускають цей параметр.

Приклад 2. Використання Keywords

keywords

Ключові слова можна перераховувати через пробіл або кому. Пошукові системи самі наведуть запис до виду, який вони використовують.

Автозавантаження сторінок

Щоб автоматично завантажувати новий документ через певний проміжок часу, використовується інструкція http-equiv="refresh" (приклад 3).



Браузер зрозуміє цей запис, як очікувати 5 секунд, а потім завантажити нову сторінку, вказану в параметрі URL, в даному випадку це перехід на сайт сайт.

Цей метатег дозволяє створювати перенаправлення (редирект) на інший сайт. Якщо URL-адреса не вказана, автоматичне оновлення поточної сторінки відбудеться через кількість секунд, заданих в атрибуті content .

Кодування

Щоб повідомити браузеру, в якому кодуванні символи веб-сторінки, необхідно встановити параметр . Для операційної системи Windows і кирилиці charset зазвичай набуває значення utf-8 або windows-1251 (приклад 4).

Приклад 4. Вибір поточного кодування

Кодування

Кирилиця



Якщо вказівка ​​кодування відсутня, браузер намагається визначити, який тип символів використовується в документі і вибирає необхідне кодування автоматично. Браузер не завжди може точно розпізнати мову веб-сторінки і в деяких випадках пропонує кодування в'єтнам замість кирилиці. Тому краще завжди вказувати наведений рядок. Тим не менш, виникають обставини, коли вказівка ​​кодування може завдати певної шкоди. Наприклад, веб-сервер автоматично використовує перекодування даних у KOI-8, а браузер, зустрівши параметр charset=windows-1251, переводить текст у кодування Windows. Виходить подвійна зміна символів, прочитати такий текст непросто. На щастя, подібна проблема вже відходить у минуле, принаймні її легко можна виявити і нейтралізувати на рівні сервера.

Здрастуйте, шановні читачі мого блогу. Сьогодні ми поговоримо з вами про кодування. Якщо ви читали мою статтю про те, знаєте, що будь-який документ в інтернеті зберігається не в тому вигляді, в якому ми звикли його бачити. Він записаний за допомогою незрозумілих людині символів та знаків. З текстом все одно.

Існує кілька кодувань, а тому, іноді побачивши незрозумілі символи при відкритті книги в мобільному додатку або запиливши статтю на сайт, ви, помінявши деякі значення в налаштуваннях, побачите звичний для ока алфавіт.

Кодування windows-1251 – що це таке, яке значення воно має при створенні сайту, які символи будуть доступні і чи є воно найкращим рішенням на сьогоднішній день? Про все це у сьогоднішній статті. Як завжди, простою мовою максимально зрозуміло і з мінімальною кількістю термінів.

Трохи теорії

Будь-який документ на комп'ютері чи в інтернеті, як я вже сказав, зберігається у вигляді двійкового коду. Наприклад, якщо ви використовуєте кодування ASCII, то літера "К" буде записана як 10001010, а windows 1251 під цим числом ховається символ - Љ. У результаті, якщо браузер або програма звернеться до іншої таблиці і вважає замість ASCII коди windows 1251, читач побачить абсолютно незрозумілі йому символ.

Логічне питання, чи нафіга було вигадувати безліч таблиць з кодами? Справа в тому, що окрім російського алфавіту існує ще й англійська, німецька, китайська. За деякими підрахунками існує близько 200 000 символів. Хоча, я не дуже довіряю цій статистиці, згадуючи про японську.

Не забувайте, що для великої та малої літери потрібно придумати свій код, є коми, тире і так далі.

Чим більше в таблиці символів, тим довше код кожного з них, а значить, і вага документа стає більшою.

Уявіть, якби одна книга важила 4 Гб! Вона б дуже довго завантажувалася, посідала все вільне місце на комп'ютері. Рішення про скачування було б справою нелегкою.

Якщо згадати про сайти, то взагалі страшно подумати, що сталося б. Кожна сторінка відкривалася навіть на швидкісному оптоволокні за годиною з гаком! Думаю, мобільні телефони можна було б сміливо викидати. Користуватися ними на вулиці навіть із 4G? Сумніваюсь.

З цих причин кожен програміст свого часу намагався вигадати свою таблицю символів. Щоб було зручно для використання та вага зберігалася оптимальною.

Microsoft, наприклад, для російськомовного сегмента створили windows-1251. У ній, звичайно ж, є свої переваги та недоліки. Як і в будь-якого іншого продукту.

Зараз вже, лише 2% всіх сторінок в інтернеті написано на 1251. Більшість веб-майстрів використовують UTF-8. Чому так?

Недоліки та переваги

UTF-8, на відміну від windows-1251 універсальне кодування, містить літери різних алфавітів. Існує навіть UTF-128, де взагалі є всі мови – теулу, суахілі, лаоська, мальтійська і так далі.

UTF-8 переможніше, літери займають у рази менше місця і займають лише один байт пам'яті, як і в 1251 році. В УТФ є рідкісні символи з інших мов або спеціальні символи. Вони й важать по 5-6 байтів, але в документі використовуються вкрай рідко.

Це кодування більш продумане, а тому його використовує більшість програм за замовчуванням. Тобто, якщо ви не вказуєте програмі, яке кодування ви використовуєте, то насамперед він перевірить саме UTF-8.

Коли ви створюєте html документ для сайту, то вказуєте браузерам на яку таблицю звертати увагу при розшифровці записів.

Для цього необхідно вставити в тег head такі дані. Після символів "charset=" йде або утф, або віндовс, як у прикладі нижче.

<meta http-equiv = "Content-Type" content = "text/html; charset=windows-1251">

Якщо надалі ви захочете щось змінити і вставити фразу албанською, використовуючи цю таблицю розшифровок, то нічого не вийде, адже цієї мови кодування не підтримує. UTF-8 без проблем дозволить це зробити.

Якщо вас зацікавило правильне створення сайту, то я можу порекомендувати вам курс Михайла Русакова. Створення та Розкрутка сайту від А до Я ».


Він містить у собі дуже багато - 256 уроків, що зачіпають JavaScript, і XML. Крім мов програмування, ви зможете зрозуміти як монетизувати сайт, тобто швидше і більше отримувати прибуток. Один із небагатьох курсів, у якому було б так детально роз'яснено все, що потрібно.

Сам я ось уже рік навчаюсь у школі блогерів Олександра Борисова . Це займає в рази більше часу, кінця і краю поки не видно, зате не менш вичерпно та дисциплінує. Мотивує продовжувати розробку.

Ну, а якщо виникають питання, не потрібно шукати по інтернету. Завжди є грамотний наставник.


Щось відійшов від теми. Повернімося до кодувань.

Бази лазневих

Коли йдеться про PHP, все взагалі страшно. Я вже розповідав про бази даних, які використовуються для прискорення роботи сайту. Зазвичай, ви до них не звертаєтесь, але коли з'являється необхідність перенесення сайту стає не по собі.

Складнощі трапляються у всіх, не важливо, який у вас досвід роботи, стаж і вислуга років. Деякі сторінки в базі можуть містити всі доступні символи для виндовс-1251, інші, наприклад, в шаблонах сторінок, в іншому кодуванні.

Поки не потрібне перенесення все працює і функціонує, хоч і не зовсім правильно. Але після переїзду починаються неприємності. В ідеалі ви повинні використовувати або тільки УТФ, або віндовс-1251, але за фактом завжди і у всіх трапляються такі недоліки.

Щоб розшифровка погодилася, необхідно вписати код mysql_query(«SET NAMES CP1251»). У цьому випадку перетворення буде здійснювати за іншим протоколом – CP1251.

Htaccess

Якщо на сайті ви наполегливо вирішили використовувати саме 1251, вам слід знайти або створити файл htaccess. Він відповідає за налаштування конфігурації. До нього доведеться додати ще три рядки, щоб усе зійшлося.

DefaultLanguage ru; AddDefaultCharset windows-1251; php_value default_charset "cp1251"

DefaultLanguage ru; AddDefaultCharset windows-1251; php_value default_charset "cp1251"

Я все ж таки наполегливо рекомендую вам задумати про використання UTF-8. Він популярніший, простіший і багатший. Яких би рішень ви не ухвалили зараз, важливо, щоб згодом можна було все виправити. Додати англомовну версію сайту на цьому кодуванні буде в рази простіше. Нічого не потрібно виправляти.

Рішення залишається за вами. Підписуйтесь на розсилку, щоб дізнаватися якнайшвидше, де вчитися, щоб не повторювати чужих помилок, а також які блогери отримують більше відвідувачів.

До нових зустрічей та удачі у ваших починаннях.

1. У нас є файл: Мойфайл.html.
2. Потрібно зберегти його в кодуванні Юнікод -> UTF-8. Рішення 1.
  1. Відкриваємо Мойфайл.html у текстовому редакторі Блокнот.
  2. Вибиваємо «Зберегти як…».
  3. Вибираємо кодування UTF-8.
  4. Тиснемо кнопку - Зберегти.

Рішення 2.
  1. Відкриваємо Мойфайл.html у текстовому редакторі Notepad++(ще є редактор PSPad)
  2. Меню -> Кодування.
    Тут бачимо (Notepad++ визначає сам) кодування відкритого файлу.
  3. Вибираємо Перетворити на UTF-8 без BOM(BOM – Byte Order Mark).
    (Кодіроака "UTF-8 без BOM" краща і відрізняється від просто "UTF-8").
  4. Меню -> Файл -> Зберегти.

Визначення кодування браузерами

Ми самі повідомляємо браузеру про те, яке кодування встановлено для цього HTML файлу.
Робиться це за допомогою META-тегу 1) У наведеному прикладі браузеру дається вказівка, що завантажений файл HTML збережений в кодуванні utf-8. Якщо HTML-файл збережений у кодуванні windows-1251, то: 2) Важливо!
При перекодуванні файлів не забувай змінюватидирективи в META-тезі на актуальні.
Якщо в META-тегу вказано одне кодування, а файл збережено в іншому кодуванні, то на екрані ми побачимо "Абракадабру".

3) Якщоу META-тезі вказано потрібне кодування, а сайт все одно відображає "абракадабру", то потрібно перевірити налаштування сайту на хостингу (веб-сервері).
Зазвичай на хостинг в налаштуваннях сайту вказано кодування utf-8.
Якщо в налаштуваннях хостингу вказано кодування windows-1251, потрібно змінити налаштування на utf-8.

Пізніше ASCIIбула розширена (спочатку вона не використовувала всі 8 біт), тому з'явилася можливість використовувати вже не 128, а 256 (2 в 8 ступенів) різних символів, які можна закодувати в одному байті інформації.
Таке вдосконалення дозволило додавати до кодування ASCIIсимволи національних мов різних країн, крім латиниці, що вже існує.
Варіантів розширеного кодування ASCIIіснує дуже багато тому, що мов у світі теж чимало. Думаю, що багато хто з вас чув про таке кодування, як KOI8 (Код Обміну Інформацією, 8 біт) — це також розширене кодування ASCII. KOI8 включала цифри, літери латинського та російського алфавіту, а також знаки пунктуації, спецсимволи та псевдографіку.

Кодування ISO

Організація Міжнародних стандартів (International Standards Organization) створила діапазон кодувань для різних алфавітів/мов.

Кодування серії ISO 8859

Кодування Опис
ISO 8859-1 (Latin-1) Розширена латиниця, що включає символи більшості західноєвропейських мов (англійська, датська, ірландська, ісландська, іспанська, італійська, німецька, норвезька, португальська, ретороманський, фарерська, шведська, шотландська (гальська) і частково голландська, фінська, французька (албанська) та африканських мов (африкаанс, суахілі). У Latin-1 відсутні символ євро і велика літера Ÿ. Ця кодова сторінка вважається кодуванням за промовчанням для HTML-документів та повідомлень електронної пошти. Також цій кодовій сторінці відповідають перші 256 символів Юнікоду.
ISO 8859-2 (Latin-2) Розширена латиниця, що включає символи центральноєвропейських та східноєвропейських мов (боснійська, угорська, польська, словацька, словенська, хорватська, чеська). У Latin-2, як і в Latin-1, немає символу євро.
ISO 8859-3 (Latin-3) Розширена латиниця, що включає символи південноєвропейських мов (мальтійська, турецька та есперанто).
ISO 8859-4 (Latin-4) Розширена латиниця, що включає символи північноєвропейських мов (гренландська, естонська, латиська, литовська та саамські мови).
ISO 8859-5 (Latin/Cyrillic) Кирилиця, що включає символи слов'янських мов (білоруська, болгарська, македонська, російська, сербська та частково українська).
ISO 8859-6 (Latin/Arabic) Символи, які використовуються в арабській мові. Символи інших мов із листом на основі арабської не підтримуються. Для коректного відображення тексту в кодуванні ISO 8859-6 потрібна підтримка двонаправленого листа та контекстно-залежних форм символів.
ISO 8859-7 (Latin/Greek) Символи сучасної грецької мови. Може використовуватися також для запису давньогрецьких текстів у монотонічній орфографії.
ISO 8859-8 (Latin/Hebrew) Символи сучасного івриту. Використовується у двох варіантах: з логічним порядком прямування символів (вимагає підтримки двонаправленого листа) та з візуальним порядком прямування символів.
ISO 8859-9 (Latin-5) Варіант Latin-1, в якому символи ісландської мови, що рідко використовуються, замінені на турецькі. Використовується для турецької та курдської мов.
ISO 8859-10 (Latin-6) Варіант Latin-4, зручніший для скандинавських мов.
ISO 8859-11 (Latin/Thai) Символи тайської мови.
ISO 8859-13 (Latin-7) Варіант Latin-4, зручніший для балтійських мов.
ISO 8859-14 (Latin-8) Розширена латиниця, що включає символи кельтських мов, таких як шотландська (гельська) та бретонський.
ISO 8859-15 (Latin-9) Варіант Latin-1, в якому символи, що рідко використовуються, замінені на необхідні для повної підтримки фінської, французької та естонської мов. Крім того, у Latin-9 було додано знак євро.
ISO 8859-16 (Latin-10) Розширена латиниця, що включає символи південноєвропейських та східноєвропейських (албанська, угорська, італійська, польська, румунська, словенська, хорватська), а також деяких західноєвропейських мов (ірландська у новій орфографії, німецька, фінська, французька). Як і в Latin-9, в Latin-10 було додано знак євро.

Для документів англійською та більшості інших західноєвропейських мов широко підтримується кодування ISO-8859-1.

У HTML ISO-8859-1є кодуванням за замовчуванням (у XHTML і HTML5 кодуванням за замовчуванням є UTF-8).
При використанні кодування сторінки, яка відрізняється від ISO-8859-1, вам необхідно вказати це в тезі .

Для HTML4:

Для HTML5:

Прикладом ANSI-кодування є всім відома Windows-1251.

Windows-1251вигідно відрізняється від інших 8 бітних кирилиць (таких як CP866 і ISO 8859-5) наявністю практично всіх символів, що використовуються в російській друкарні для звичайного тексту (відсутня тільки знак наголосу). Вона також містить усі символи для інших слов'янських мов: української, білоруської, сербської, македонської та болгарської.
Нижче наведено десяткові значення символів кодування Windows-1251.

Для відображення символів таблиці в HTML-документі скористайтеся наступним синтаксисом:

& + код +;

Кодування Windows-1251 (CP1251)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

8.
Ђ
402
Ѓ
403

201A
ѓ
453

201E

2026

2020

2021

20AC

2030
Љ
409

2039
Њ
40A
Ќ
40C
Ћ
40B
Џ
40F

9.
ђ
452

2018

2019

201C

201D

2022

2013
-
2014

2122
љ
459

203A
њ
45A
ќ
45C
ћ
45B
џ
45F

A.

A0
Ў
40E
ў
45E
Ј
408
¤
A4
Ґ
490
¦
A6
§
A7
Ё
401
©
A9
Є
404
«
AB
¬
AC
­
AD
®
AE
Ї
407

B.
°
B0
±
B1
І
406
і
456
ґ
491
µ
B5

B6
·
B7
е
451

2116
є
454
»
BB
ј
458
Ѕ
405
ѕ
455
ї
457

C.
А
410
Б
411
У
412
Г
413
Д
414
Е
415
Ж
416
З
417
І
418
Й
419
До
41A
Л
41B
М
41C
Н
41D
Про
41E
П
41F

D.
Р
420
З
421
Т
422
У
423
Ф
424
Х
425
Ц
426
Ч
427
Ш
428
Щ
429
Ъ
42A
Ы
42B
Ь
42C
Е
42D
Ю
42E
Я
42F

E.
а
430
б
431
в
432
г
433
д
434
е
435
ж
436
з
437
і
438
й
439
до
43A
л
43B
м
43C
н
43D
о
43E
п
43F

F.
р
440
з
441
т
442
у
443
ф
444
х
445
ц
446
год
447
ш
448
щ
449
ъ
44A
ы
44B
ь
44C
е
44D
ю
44E
я
44F

Кодування стандарту UNICODE

Юнікод (англ. Unicode) - стандарт кодування символів, що дозволяє подати знаки майже всіх писемностей світу, і спеціальних символів. Представлені в юнікод символи кодуються цілими числами без знака. Юнікод має кілька форм представлення символів у комп'ютері: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) та UTF-32 (UTF-32BE, UTF-32LE). (Англ. Unicode transformation format – UTF).
UTF-8— це в даний час поширене кодування, яке знайшло широке застосування в операційних системах та веб-просторі. Текст, що складається із символів Unicode з номерами менше 128 (область із кодами від U+0000 до U+007F), містить символи набору ASCIIіз відповідними кодами. Далі розташовані області знаків різних писемностей, знаки пунктуації та технічні символи. Під символи кирилиці виділені області знаків із кодами від U+0400 до U+052F, від U+2DE0 до U+2DFF, від U+A640 до U+A69F.

Кодування UTF-8є універсальною і має значний резерв на майбутнє. Це робить її найзручнішим кодуванням для використання в інтернеті.



Please enable JavaScript to view the

Розповісти друзям