Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> KOI8-R vs Windows-1251 
:(
    Опции темы
ScoDi
Дата 30.5.2005, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 17.11.2004

Репутация: нет
Всего: нет



Как определить в какой кодировке находиться текстовый файл?(может появилось что-то свежие в PHP5 для этого)
PM MAIL WWW   Вверх
Mal Hack
Дата 30.5.2005, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Можно попробовать через iconv();
НО
Код
    function detect_cyr_charset($str)
    {
        $charsets = Array( 
                        'k' => 0, 
                        'w' => 0, 
                        'd' => 0, 
                        'i' => 0, 
                        'm' => 0 
                         ); 
        for ($i = 0, $length = strlen($str); $i < $length; $i++) { 
            $char = ord($str[$i]);
            //non-russian characters
            if ($char < 128 || $char > 256) continue; 
            //cp866
            if (($char > 159 && $char < 176) || ($char > 223 && $char < 242)) $charsets['d'] += 3; 
            if (($char > 127 && $char < 160)) $charsets['d'] += 1; 
            //koi8-r
            if (($char > 191 && $char < 223)) $charsets['k'] += 3; 
            if (($char > 222 && $char < 256)) $charsets['k'] += 1; 
            //win-1251
            if ($char > 223 && $char < 256) $charsets['w'] += 3; 
            if ($char > 191 && $char < 224) $charsets['w'] += 1; 
            //mac
            if ($char > 221 && $char < 255) $charsets['m'] += 3; 
            if ($char > 127 && $char < 160) $charsets['m'] += 1; 
            //iso-8859-5
            if ($char > 207 && $char < 240) $charsets['i'] += 3; 
            if ($char > 175 && $char < 208) $charsets['i'] += 1; 
        } 
        arsort($charsets); 
        return key($charsets);
    }

Выдрано отсюда:
http://forum.vingrad.ru/index.php?showtopi...indpost&p=93370
PM ICQ   Вверх
Irokez
Дата 30.5.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



а кто может мне по-научному объяснить как эта функция работает smile точнее меня интересует, откуда эти загадочные числа взялись? (128, 256, 127, 160 ...)
PM   Вверх
Mal Hack
Дата 30.5.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



ASCII коды.
PM ICQ   Вверх
Irokez
Дата 30.5.2005, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



Цитата(Mal @ 30.5.2005, 16:57)
ASCII коды.

хм.. а поподробнее про сами числа? откуда они взялись?
интуитивно догадываюсь, что в разных кодировках русские символы занимают разные позиции в ASCII таблице, это так?
а почему прибавляем то 3 то 1?
PM   Вверх
Mal Hack
Дата 30.5.2005, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Irokez @ 30.5.2005, 22:12)
а почему прибавляем то 3 то 1?

Я думаю, что это заглавгные или строчные буквы... Хотя голова сегодня туго соображает.

Цитата(Irokez @ 30.5.2005, 22:12)
интуитивно догадываюсь, что в разных кодировках русские символы занимают разные позиции в ASCII таблице, это так?

Да.

PM ICQ   Вверх
Irokez
Дата 30.5.2005, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



Цитата(Mal @ 30.5.2005, 21:32)
Я думаю, что это заглавгные или строчные буквы... Хотя голова сегодня туго соображает.

хм.. а почему тогда заглавные буквы увеличивают вероятность в три раза больше чем строчные? кто-нибудь знает автора сей функции?
PM   Вверх
Mal Hack
Дата 30.5.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Я тут подумал, я думаю что это флаги !!! Аля CHMOD.
PM ICQ   Вверх
versus
Дата 30.5.2005, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.3.2005
Где: Переславль-Залесс кий

Репутация: нет
Всего: 3



Цитата(Irokez @ 30.5.2005, 21:35)
кто-нибудь знает автора сей функции?

Говорят что это он/она/они:
http://tony2001.phpclub.net/misc/detect_charset/
PM MAIL WWW   Вверх
Mal Hack
Дата 30.5.2005, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



У меня WIN, как MAC определила smile))
PM ICQ   Вверх
Irokez
Дата 30.5.2005, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



Цитата(Mal @ 30.5.2005, 21:51)
У меня WIN, как MAC определила smile))

а ты в браузере поставь win1251
Добавлено @ 21:55
Цитата(Mal @ 30.5.2005, 21:45)
Я тут подумал, я думаю что это флаги !!! Аля CHMOD.

поподробнее, поподробнее, автора пока нет, будем раскрывать алгоритм совместными силами smile
PM   Вверх
Mal Hack
Дата 30.5.2005, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Irokez @ 30.5.2005, 22:53)
а ты в браузере поставь win1251

Стоит...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.