Виникла проблема: як швидко визначити кодування текстового рядка щодо UTF-8 Все частіше доводиться працювати з рядками в кодуванні UNICODE.
Нижче представлена функція перевірки, чи потрібно перетворення кодування UNICODE (UTF-8) в кодування WINDOWS (win-1251)
Функція дає досить точну відповідь, хоча побудована не на по-кодовому перетворенні символів.
Коротко - опис функції detect_my_utf ().- перетворимо (рядок в спеціальний формат)
- обчислюємо довжину входить рядки
- наводимо всі букви рядка в заголовні
- прибираємо специфічні коди .0 і .1
- обчислюємо довжину нового рядка
- отримуємо співвідношення тарою рядки до нової
Якщо це співвідношення 1 або близько до нього, то є підозра, що входить рядок не кодувалася в UNICODE. Якщо це співвідношення знаходиться в діапазоні від 1,2 до 2,2 - то можна сміливо перекодувати рядок в WINDOWS кодування win-1251.
На виході функції маємо 0 або 1, відповідно, не UNICODE або UNICODE.
Приклади виконання функції:
Приклад 4 Даний алгоритм добре справляється з різноманітними входять рядками в складі сервісу статистики переходів з пошукових машин.
PHP - це мова програмування, заснований на використанні скриптів. Дана мова широко застосовується для створення різних front-end і back-end веб-додатків. Підтримується по-замовчуванню більшістю хостерів, будучи одним з лідерів серед мов програмування, призначених для створення динамічних інтерактивних сайтів.