Автор Тема: Как определить кодировку  (Прочитано 4164 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Microname

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.jpeg.ru/
Как определить кодировку
« : 25 Июня 2002, 02:42:33 »
Допустим, что переменная содержит русский текст

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

Как определить в какой он кодировке ?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Как определить кодировку
« Ответ #1 : 25 Июня 2002, 10:46:44 »
Смотря откуда этот текст берется, из формы или из базы.
AS IS...

Оффлайн Microname

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.jpeg.ru/
Как определить кодировку
« Ответ #2 : 25 Июня 2002, 11:03:36 »
$buff = implode("",file("http://www.сайт.com/index.html"));

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

Мета тегов в ней нет.

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Как определить кодировку
« Ответ #3 : 25 Июня 2002, 11:47:48 »
Microname
А хоть какое-нибудь слово известно с этой страницы (в кириллице)? Может название страницы фиксировано.
Если так, то можно конвертировать это слово в различные кодировки и искать его в тексте.
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Как определить кодировку
« Ответ #4 : 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 "Неизвестная кодировка";
« Последнее редактирование: 25 Июня 2002, 12:11:34 от GotZfild »
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн Microname

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.jpeg.ru/
Как определить кодировку
« Ответ #5 : 25 Июня 2002, 12:23:48 »
Да, ты прав. Такой способ прокатит в данном случае.

Спасибо.

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как определить кодировку
« Ответ #6 : 25 Июня 2002, 22:13:33 »
А вообще такое делается по частотному анализу (так "а" чаще встречается например или большие буквы - реже маленьких etc). В FAR-е есть таблицы и в═Mozilla)
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28