[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Автоматическое определение кодировки
Владимир55
Скрипт работает на Денвере и обрабатывает текстовую информацию, получаемую из текстового файла. Вся информация на русском, хотя вкрапление латиницы не исключено.

К сожалению, содержимое текстовых файлов может быть как в виндусовой кодировке, так и в UTF-8. А потому возникает необходимость автоматически определить, в какой кодировке данный текст.

Полазив по сети, я понял, что точного решения у этой проблемы нет, но упоминается некая функция IsTextUnicode, корую в справочнике РНР я не нашел.

И вот я не пойму, можно определить кодировку текста или нет?
Zzepish
Владимир55
могу кинуть вариант. Но он работает ТОЛЬКО если она прописанна на сайте
Владимир55
Прописать кодировку на сайте под Денвером не проблема.
sergeiss
Владимир55, вот "твоя" функция, если я правильно понял задачу http://php.net/manual/ru/function.mb-detect-encoding.php

echo mb_detect_encoding( $str, array( 'utf-8', 'cp1251') ).'<br>';


Тут же можно и преобразовать, если неподходящая кодировка окажется, функцией iconv()

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Владимир55
Да, это оно и есть.

Спасибо!
Zzepish
А вот универсальный вариант
$url='http://ваш сайт';
$get=file_get_contents($url);
preg_match('/charset=[^\s\'"]+/',$get,$grab_charset);
$charset=str_replace('charset=','',$grab_charset[0]);
$get=iconv($charset,'utf-8',$get);
$get=mb_convert_encoding($get, 'utf-8', $charset);
volter9
Цитата (Zzepish @ 20.02.2015 - 00:25)
ТОЛЬКО если она прописанна на сайте

Цитата (Zzepish @ 20.02.2015 - 03:03)
универсальный вариант

laugh.gif

_____________
Мой блог
Zzepish
volter9
что не нравится то? мало-ли какая кодировка. А иначе- как узнавать?
volter9
Zzepish
Дело не в кодировке, сначала написал что "ТОЛЬКО если она [кодировка] прописана на сайте", а потом написал "универсальный вариант", т.е. противоречие предыдущего сообщение. Вот мне это и показалось забавным, не сердись. smile.gif

_____________
Мой блог
Zzepish
volter9
да я не сержусь) я подразумеваю, что она универсальная в данном случае))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.