Обнаружение кодирования и сделать все UTF-8



Я читаю много текстов из различных RSS-каналов и вставляю их в свою базу данных.



конечно, есть несколько различных кодировок символов, используемых в каналах, например UTF-8 и ISO-8859-1.



к сожалению, иногда возникают проблемы с кодировкой текстов. Пример:




  1. "β" в "Fußball"должно выглядеть так в моей базе данных: "Ÿ". Если это "Ÿ", он отображается правильно.


  2. иногда "β" в "Fußball"выглядит так в моей базе данных: "ß". Тогда он отображается неправильно, конечно.


  3. в других случаях " Β "сохраняется как" β " - так без каких-либо изменений. Тогда он также отображается неправильно.



что я могу сделать, чтобы избежать случаев 2 и 3?



как я могу сделать все то же кодирование, предпочтительно UTF-8? Когда я должен использовать utf8_encode(), когда я должен использовать utf8_decode() (понятно, что это за эффект, но когда я должен использовать функции?) и когда я должен ничего не делать с вводом?



вы можете помочь мне и сказать мне, как сделать все то же самое кодирование? Возможно, с функцией mb_detect_encoding()? Могу ли я написать функцию для этого? Так что мои проблемы:




  1. как узнать, какую кодировку использует текст?

  2. как преобразовать его в UTF-8-независимо от старой кодировки?


будет ли такая функция работа?



function correct_encoding($text) {
$current_encoding = mb_detect_encoding($text, 'auto');
$text = iconv($current_encoding, 'UTF-8', $text);
return $text;
}


Я проверил его, но он не работает. Что с ним не так?

701   0  

Comments

    Ничего не найдено.