Авто определение кодировки

Статус
В этой теме нельзя размещать новые ответы.
V

VictorVi

Прохожие
Кто как определяет кодировку страницы?
Я обычно делал вот такое простое действие:

PHP:
	/**
	 * Определяем кодировку. Конвертим контент в соответствии с кодировкой.
	 */
	if (preg_match("/charset=([^\"\'<\s]+)/",$strContent, $strMatch)){
		$charset=trim($strMatch[1]);
	}
	
	if (strlen($charset)>0){
		$strContent=iconv($charset, "cp1251", $strContent);
	}

Но порой чудо разработчики сайтов ставят в чарсет утф-8, а сайт на самом деле на cp-1251. Отсюда вопрос - как сделать универсальный конвертер, что бы он сам определял что за кодировка в тексте файла. Никто с таким не сталкивался? Интересует автоопределялка для cp-1251 koi8r и utf-8.
 
V

VictorVi

Прохожие
Того что мне надо нет по указанонй сссылке нет.
Но все же нашел хорошее решение.
 

medvoodoo

Постоялец
Регистрация
28 Мар 2007
Сообщения
88
Реакции
19
Вы код смотрели? Такое через Ж я не видел со времен php3, в общем время первого коментария говорит сам за себя: 22.06.06
В общем то я имел в виду код:
PHP:
<?php
function detect_encoding($string) { 
  static $list = array('utf-8', 'windows-1251');
 
  foreach ($list as $item) {
    $sample = iconv($item, $item, $string);
    if (md5($sample) == md5($string))
      return $item;
  }
  return null;
}
?>
доработанный он позволяет уложиться в строчек 30 вместо 330, с несомненным выигрышем по времени
 
V

VictorVi

Прохожие
Порой работающее решение бывает лучше, чем некрасивый код.
Спасибо за красивое решение моей проблемы. Точно до такого бы не дошел =)
 

medvoodoo

Постоялец
Регистрация
28 Мар 2007
Сообщения
88
Реакции
19
ну вот же была такая тема
Для просмотра ссылки Войди или Зарегистрируйся
не катит, тема немного другая, в той теме нет решения текущей задачи

VictorVi, В решениях времен до эры php5 можно брать только идеи но не их исполнение, очень много полезных операторов появилось с тех пор и 95% хостингов научились собирать нормально php.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху