Привет, Гость!
Главная
Вход

Последняя активность

Форум / Вап-мастеру / PHP
Поиск
  Определение кодировки строки средствами PHP
AkeLLa AkeLLa [Off] [#] (30.03.2008 / 17:16)
Кто что знает по этой теме? mb_detect_encoding все говорит utf-8, даже если сложеный для ее список windows-1251, windows-1252, utf-8.. Строка хоть в чем, а говорит UTF-8. Какой есть другой способ?
Esi0n Esi0n [Off] [#] (30.03.2008 / 18:51)
Тут без русских символов http://php.su/articles/?cat=ex ... e=002 и есчо md_ не держит win1251
AkeLLa AkeLLa [Off] [#] (30.03.2008 / 22:18)
не, это не пойдет (( мне нужно кодировку русских ID3 тегов из файла и перекодировать в UTF-8
KaPaHDaLLIuK KaPaHDaLLIuK [Off] [#] (05.05.2008 / 21:01)
Так на ш2м можно перекодировать... или ты че хочешь?
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2008 / 21:12)
Уездный предводитель Каманчей
Я тоже столкнулся с этой проблемой, что не всегда корректно определяет.
Для тэгов не пробовал, но для импортируемых текстов расскажу:
Имеет значение порядок того, как ты определяешь кодировку.
Делай типа того: Если 1251, если нет, то может KOI, если нет, то UTF.
Подбери рабочую последовательность кодировок, в каком порядке ты их будешь проверять условием.
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2008 / 21:14)
Уездный предводитель Каманчей
Что интересно, по логике вроде похуй, в какой последовательности проверяешь...
Но на практике, есть ложные срабатывания.
З.Ы.
И конечно не забывай про mb_internal_encoding()
Если неправильно задана, то использование mb_string дает непредсказуемые результаты.
AkeLLa AkeLLa [Off] [#] (05.05.2008 / 21:28)
Олег, так mb_string_encoding() 1251 не поддерживает.. Или ее нужно как-нибудь подругому писать в порядок?
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2008 / 21:34)
Уездный предводитель Каманчей
Ты ковырни библиотеку нашего двигак, там со строки 1075 как раз и применяется функция mb_check_encoding.
Щас опишу подробнее что желательно сделать...
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2008 / 21:36)
Уездный предводитель Каманчей
Так, как внутренняя кодировка PHP не UTF-8, мы ОБЯЗАТЕЛЬНО, перед вызовом любой функции mb_string должны задать кодировку:
mb_internal_encoding('UTF-8');
А затем уже можем работать. Вот пример из нашей библиотеки:
if (mb_check_encoding($txt, 'UTF-8'))
{
} elseif (mb_check_encoding($txt, 'windows-1251'))
{
$txt = iconv("windows-1251", "UTF-8", $txt);
} elseif (mb_check_encoding($txt, 'KOI8-R'))
{
$txt = iconv("KOI8-R", "UTF-8", $txt);
} else
{
echo "Файл в неизвестной кодировке!<br /><a href='index.php?act=load&id=" . $id . "'>Повторить</a><br/>";
require_once ('../incfiles/end.php');
exit;
}
AkeLLa AkeLLa [Off] [#] (05.05.2008 / 21:52)
и это работает?
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2008 / 21:56)
Уездный предводитель Каманчей
AkeLLa(05.05.2008/16:52):" и это работает? "Да, реально работает, потому и ставил.
AkeLLa AkeLLa [Off] [#] (05.05.2008 / 22:09)
чето я сомневаюсь.. на php.su читал что mb_* кодировки windows-1251, windows-1252 не поддерживает вообще.. тексты с 1251 в utf-8 перекодирует успешно? у меня например в списке были windows-1251 и utf-8, так функция всегда возвращала вторую, в какой кодировке не был текст ((
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2008 / 22:24)
Уездный предводитель Каманчей
Дык проверь сам на двиге
Попробуй импортировать 2 файла. Один набери Русскими буквами в Виндовсовском блокноте (1251), а второй возьми какой-нить UTF-8.
AkeLLa AkeLLa [Off] [#] (05.05.2008 / 22:33)
спасибо, попробую как-то на днях.. может сегодня))
AkeLLa AkeLLa [Off] [#] (05.05.2008 / 22:37)
AlkatraZ(05.05.2008/16:36):" Так, как внутренняя кодировка PHP не UTF-8 "Ы? Как это не UTF-8? Если PHP стоит на *NIX машине, то стандартная кодировка будет UTF-8, если на windows,то WINDOWS-1251..
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2008 / 22:52)
Уездный предводитель Каманчей
Нет!
Кодировка функций PHP задается не системой, где стоит сам Пых, а в файле php.ini
По умолчанию там стоит Латинская кодировка и редко кто ее меняет.
Изм. AlkatraZ (05.05.2008 / 22:57) [1]
AlkatraZ AlkatraZ (SV!) [Off] [#] (05.05.2008 / 22:55)
Уездный предводитель Каманчей
Лучше, для надежности всегда вначале задавай:
mb_internal_encoding('UTF-8');
а уж потом применяй функцию гг.
бозон_хиггса бозон_хиггса [Off] [#] (28.12.2019 / 13:11)
царь есть азмъ!!!
# AlkatraZ (05.05.2008 / 21:12)
Я тоже столкнулся с этой проблемой, что не всегда корректно определяет.
Для тэгов не пробовал, но для импортируемых текстов расскажу:
Имеет значение порядок того, как ты определяешь кодировку.
Дела
Спасибо, очень не помогло, потому что я не пробовал даже
  Всего: 18

Фильтр по автору
Скачать тему

Форум

Новые вверху
0 / 56

Gazenwagen Gegenkulturelle Gemeinschaft