Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: mbstring кривой и глючный

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Так как же теперь быть??
Haron
Отправлено: 02 Января, 2012 - 06:36:33
Post Id



Частый гость


Покинул форум
Сообщений всего: 197
Дата рег-ции: Июнь 2010  
Откуда: Оттуда


Помог: 5 раз(а)




Всем привет! С новым годом, счастья Вам, и всего того что вам уже нажелали Улыбка. Ну ладно...

Столкнулся с проблемой:

PHP:
скопировать код в буфер обмена
  1. function detect_enc($str)
  2. {
  3.         $awe = mb_list_encodings();
  4.         unset($awe[0], $awe[1], $awe[2]);
  5.         foreach ($awe as $enctype)
  6.         {
  7.                 if (mb_check_encoding($str, $enctype) === true) return $enctype;
  8.         }
  9.         return false;
  10. }
  11.  
  12. echo detect_enc('Строка_в_кодировке_Windows-1251'); // Напечатало 'byte2be'


И пошёл я сюда, нашёл похожую проблему и кучу незакрытых аж с 2008 года багов. Отписался в камментах к багу на всякий случай...

Однако возникает вопрос, так как же быть-то? Конкренто - интересует способ надёжного определения текста в произвольной кодировке на входе. Я встречал разной степени костылистости решения, встречал способы на паттернах, на основе подсчёта частот символов и их биграмм, и т. д.

А есть-ли какой-то универсальный способ, или какая-то библиотека? Возможно что-то есть в существующих фреймворках? Ребята, это достаточно актуальная проблема, давайте её решим вместе, и выложим это в "уроках"?


-----
И чё?
 
 Top
Champion Супермодератор
Отправлено: 02 Января, 2012 - 09:01:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Haron пишет:
Я встречал разной степени костылистости решения, встречал способы на паттернах, на основе подсчёта частот символов и их биграмм, и т. д.
К сожалению, только так.
Можно еще иметь словари буквосочетаний. Тогда повысится степень правильности определиния кодировки текста с реальными словами, но, скорее всего, оно того не будет стоить. Универсального стопроцентного способа определить кодировку произвольной строки нету
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB