HTML в открытый текст - неизвестная оригинальная кодировка - PullRequest
2 голосов
/ 02 декабря 2011

Я работаю с PHP, получаю html с веб-сайтов, преобразовываю их в обычный текст и сохраняю их в базу данных.

Их необходимо сохранить в базе данных в utf-8.Моя первая проблема заключается в том, что я не знаю исходную кодировку, как лучше всего кодировать в utf-8 из неизвестной кодировки?

2-й вопрос - это преобразование HTML в простой текст.Я попытался использовать html2text, но он испортил все внешние символы UTF.

Каков наилучший подход?

Редактировать: Кажется, часть о простом тексте недостаточно ясна.Что мне не нужно, чтобы просто раздеть теги HTML.Я хочу удалить теги, сохраняя при этом некую структуру документа.Теги <p>, <li> преобразуются в разрывы строк и т. Д., А теги типа <script> будут полностью удалены с их содержимым.

Ответы [ 2 ]

3 голосов
/ 02 декабря 2011
  • Используйте mb_detect_encoding() для определения кодировки.

  • Используйте strip_tags(), чтобы избавиться от тегов HTML.

Остальные темы, такие как форматирование вывода, зависят от ваших потребностей.

Редактировать: я не знаю, существует ли полное решение, но эта ссылка действительно полезна для самостоятельного улучшения существующих HTML-текстовых PHP-скриптов..

http://www.phpwact.org/php/i18n/utf-8

1 голос
/ 02 декабря 2011

Эта функция может быть вам полезна:

<?php
function FixEncoding($x){
  if(mb_detect_encoding($x)=='UTF-8'){
    return $x;
  }else{
    return utf8_encode($x);
  }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...