Автоматично откриване и автоматична корекция кодиране в PHP

Промяна на мястото на скорошно не е много гладка на двигателя, се натъкнах на проблем с кодировката на низове. Разтоварни данни от XML файл получиха своите безсмислици и е наполовина неволи. Част от линиите, необходими за конвертиране на UTF-8 и участие в CP1251. Както се оказа, ние знаем, един създател на XML файл, но работата по nemenee трябваше да се направи. И тогава аз посетих една интересна идея - да се напише функция, която определя себе си от това, което е необходимо да се преобразува в низ автоматично и да го направи. На изхода се връща в електронен формат нормален ред.

Започва бърза възглавници как да го приложат. Намерих много статии за кодиране на автоматично откриване. но те са ограничени до определен набор от кодировки. За да добавите друг, че е необходимо да се занимавам не е шега. Затова реших да направите следното:

  • Функцията изпраща низ кодиран с бухалката.
  • Във вътрешността на функцията, има масив с всички възможни кодировки. Ако е необходимо, разширяване на спектъра от възможни кодировки, просто трябва да го добавите към масива.
  • В допълнение, има низ масив кодировки за резултат сравнение (в този случай ми звънец азбука с малки букви). Тогава мисля, че започвам да се отгатне как работи функцията.
  • Функцията връща низ в нормалния кодировка.

По-долу е пълния код за функцията:

Веднага се каже, се оказа добра, но все пак патерицата. В моя случай, че не nirazu обобщи, Работил съм на 100%. Тя също е хубаво да се използва по време на работа на ICQ ясли в PHP.

Може би най-функцията е малко ресурс интензивно, така да се ускори работата си трябва да направи съкращения възможни кодировки. Това значително ще увеличи скоростта на програмата. Все още е възможно да се намали низ за търсене на мачове, защото тя е много пъти всички се движи в една линия, но аз не бих препоръчал, защото вероятността за намиране на правилната кодирането се намалява значително.

Повече за правилното корекция кодиране. сървърът трябва да работи с изброяване библиотека. За щастие, в повечето сървъри е инсталиран по подразбиране.

Функция правилно коригира кодиране в PHP с вероятност от 95%.

Сега нека да видим как ще работи по същия начин.

Първо на всички възможни кодировки преместен масив и всеки елемент от своя страна се опитва да конвертирате линията на кодиране крива един с друг в масива. След това, в резултат на низ от символи се счита за съвпадение с поредица от сравнение, резултатите се добавят към масива. Масивът е подредени областта на броя на съвпадение се взема и резултата от декодирането символи с най съвпадението.

Това е много проста, и както е показано, тази функция работи в почти всички ситуации. Нужно е само да попълните правилно кодировки масив verotnyayh.

Сега, ако искате да коригирате кодирането линия в PHP. Нахранете проста функция крива линия, и тя ще се върне към вас, че е в нормална форма.

Тази функция е за автоматично откриване на кодиране работи по няколко реални онлайн магазини, разтоварват на XML файл. Може би трябва да се промени, че той проверява в началото на това, което линия е било изпратено, така че ако то е било изпратено в нормален ред, той спира и не се сринат отново сървъра, но опитът показва, че нормалната линия на нормалното и обратно, и като цяло, че -Това е ленив).

Начини за решаване на проблема с кодирането в PHP много, но това е личното ми патерица, която по мое мнение един от най-добрите варианти. Може би греша, но досега не е имало причина да се съмняваме.