PHP iconv: коректна кодування рядків

8 0 Новини високих технологій

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

Загальне правило подання інформації

Завжди має значення кодування файлу, в якому міститься скрипт PHP. Якщо немає проблем з відображенням вихідного тексту в середовищі розробки або звичайному текстовому редакторі, а в браузері нічого прочитати не можна - не слід звертатися відразу до функції PHP iconv. Потрібно просто поправити рядки:
  • «META charset="UTF-8"» charset="windows-1251";
  • «META HTTP-EQUIV="Content-Language" CONTENT="en,ru"».
  • Це просте правило, зазвичай в цьому контексті проблем немає: якщо в середовищі розробки PHP код відображається коректно (кирилиця), то в браузері він буде читабельний. Навіть малокваліфіковану програміст зможе все підлаштувати так, як треба.


    PHP iconv: коректна кодування рядків
    Код PHP - це обробка текстової інформації. Часто програміст забуває, що один символ - це далеко не завжди один байт. Якщо сайт присвячений математичним розрахункам, а кирилиця застосовується при виведенні результатів, можливі колізії. Це вирішується застосуванням функції iconv() в PHP-коді сторінки. Якщо в процесі обробки інформації використовується база даних, інформація може просто «прірва». В реальність все є і все працює, просто потрібно зробити належні перетворення.
    PHP iconv: коректна кодування рядків
    Наведені приклади показують, як просто зробити перетворення рядків з одного кодування в іншу за допомогою функції PHP iconv(). Не суть важливо, в якому регістрі записувати стандартні позначення кодувань, але сенс використання функції повинен бути коректним.


    Перш ніж виробляти перетворення, потрібно знати:
  • з якою кодування;
  • в яку кодування.
  • В останньому прикладі показано, як iconv використовується для візуалізації виконання зовнішньої команди dir, виконаної в Windows 10. Результати роботи команди повернуті назад у місце виклику, де PHP iconv() трансформувала їх з CP866 у UTF-8 і вони коректно відобразити у браузері. У всіх цих випадках функція надала можливість отримати інформацію в читабельному вигляді.

    Робота з базою даних

    При роботі з базою даних може статися так, що PHP iconv не працює. Програміст витрачає дорогоцінні години робочого часу, а результати запиту просто не відображаються або поміщаються в базу даних нечитабельном вигляді. Проблема вирішується просто. Якщо запит виконується без помилок, значить, винна невідповідність кодування бази даних і коду сторінки. Зазвичай цього достатньо, якщо ні, потрібно перевірити кодування HTML-сторінки, PHP-коду і бази даних. Проблема буде вирішена.
    PHP iconv: коректна кодування рядків
    Характерна риса: кодувань багато, умови для виконання роботи багатогранні, але якщо один раз все перевірити і забезпечити сумісність, то результат буде абсолютно читабельним, а робота веб-ресурсу - бездоганна.