Forum Webscript.Ru

Программирование => PHP => Тема начата: Microname от 25 Июня 2002, 02:42:33

Название: Как определить кодировку
Отправлено: Microname от 25 Июня 2002, 02:42:33
Допустим, что переменная содержит русский текст

$text = "какой-то текст";

Как определить в какой он кодировке ?
Название: Как определить кодировку
Отправлено: ThE0ReTiC от 25 Июня 2002, 10:46:44
Смотря откуда этот текст берется, из формы или из базы.
Название: Как определить кодировку
Отправлено: Microname от 25 Июня 2002, 11:03:36
$buff = implode("",file("http://www.сайт.com/index.html"));

$buff = это страница, но кодировка ее неизвестна.

Мета тегов в ней нет.
Название: Как определить кодировку
Отправлено: GotZfild от 25 Июня 2002, 11:47:48
Microname
А хоть какое-нибудь слово известно с этой страницы (в кириллице)? Может название страницы фиксировано.
Если так, то можно конвертировать это слово в различные кодировки и искать его в тексте.
Название: Как определить кодировку
Отправлено: GotZfild от 25 Июня 2002, 12:01:58
Если слово со страницы известно, то можно так:
// $text содержит твою страницу
$charsets = array("k", "i", "a", "d", "m", "w");
$charsets_names = array("koi8-r", "iso8859-5", "ALT", \'x-cp866\', \'x-mac-cyrillic\', "windows-1251");
$search = "какое-либо слово";
for ($i = 0; $i < sizeof($charsets); $i++) {
      $word = convert_cyr_string($search, "w", $charsets[$i]);
      if (strstr($text, $word)) {
            $str_charset = $charsets_names[$i];
            break;
      }
}
if ($str_charset) echo "Кодировка ".$str_charset; else echo "Неизвестная кодировка";
Название: Как определить кодировку
Отправлено: Microname от 25 Июня 2002, 12:23:48
Да, ты прав. Такой способ прокатит в данном случае.

Спасибо.
Название: Как определить кодировку
Отправлено: Oak от 25 Июня 2002, 22:13:33
А вообще такое делается по частотному анализу (так "а" чаще встречается например или большие буквы - реже маленьких etc). В FAR-е есть таблицы и в═Mozilla)