Прблема с украинскими буквами
1.
Александр (09.09.2011 / 18:28)
есть проблема следующая:
имеется граббер новостей Украины в кодировке utf-8.
имеется ротор в этой же кодировке.
граббер работает и я читаю новости уже давно и успешно, но вот если новости на украинском, то украинские буквы не отображаются, а выводит примерно так
Розлив нафтопродукт╕в поблизу ╤лл╕ч╕вська на Одещин╕.
можно это както исправить?
2.
Phantom (10.09.2011 / 00:52)
А как должна выглядеть эта строка?
3.
Игорь (10.09.2011 / 01:05)
там проблема с украинской буквой
і
Розлив нафтопродуктів поблизу Іллічівська на Одещині.
4.
Phantom (10.09.2011 / 02:59)
Вообще странная ошибка. Наблюдается только с І/і или с остальными Ґ/ґ/Ї/ї/Є/є тоже? Вообще можно написать перекодировщик, но это будет мега костыль. Через что грабишь? CURL?
5.
Дмитрий (10.09.2011 / 05:42)
4.
Phantom, ну почему мега-костыль? Если проблема только с одной буквой, то спасет что-то типа
$text = preg_replace('|╕|iu', 'i', $text);
Если букв несколько - внести их в массив и работать уже с ним. Зачем городить?
6.
ктулху (10.09.2011 / 09:27)
5, это и есть костыль, нужно искать корень проблемы
7.
Дмитрий (10.09.2011 / 10:27)
ShiftBHT (10 Сентября 2011 / 08:27)
5, это и есть костыль, нужно искать корень проблемы
по крайней мере не мега-костыль, как говорил Андрюха.
8.
Александр (10.09.2011 / 10:59)
пробЛЕМА СО всеми буКвами. Граббер на основе fIle_Get_contents
9.
Дмитрий (10.09.2011 / 11:28)
Текст после граба регулярками какими-то обрабатывается? Может, просто учтены определенные символы, цифры, латинский алфавит и кириллица, а укр просто отсутствуют в регулярке?
В любом случае тебе поможет вот такая шляпа:
$search = array("╤" => "І", "╕" => "і", "бла" => "Ї", "бла" => "ї", "бла" => "Ґ", "бла" => "ґ", "бла" => "Є", "бла" => "є");
$text = 'Розлив нафтопродукт╕в поблизу ╤лл╕ч╕вська на Одещин╕.';
echo strtr($text, $search);
Тут переменная $text - это то, что ты сграбил. В регулярку я уже подставил буквe "I" и "i". Остальные сам доработай (вместо "бла" подставь кракозябру, которая ассоциируется с последуюжей за "бла" укр. буквой). Вот и весь "костыль"
10.
Александр (10.09.2011 / 14:48)
9.
dima.london, Спасибо. Этот вариант подошел, хотя я не могу понять причину неотображения. кодировка одна и юникод же должен поддерживать украинские буквы.
URL:
https://visavi.net/topics/24752