lordBlack
Мой дом здесь!
- Регистрация
- 29 Ноя 2007
- Сообщения
- 623
- Реакции
- 267
- Автор темы
- #1
вообщем собрал парсер, парсер работает как часы, НО
так получилось что часть входящего материала идет в cp1251 часть d KOI-8, а часть в UTF8
соответственно UTF8 отображдается нормально, а останые идут иероглифами.
на вывод использовал такую фишку:
то есть использовал конверт Windows1251 в UTf-8, теперь началось веселье такое:
тот контент что был в windows-кодировке выводится нормально как utf, а тот контент который БЫЛ изначально в кодировке UTF-8 вываливается в крякозаблах...
замкнутый круг вообщем....
P.S. Самое веселое: копирую крякозяблы в буфер -вставляю в документ Notepag++ (по умолчанию windows1251) -тыкаю отобразить как UTF-8 - и вуаля -все отображается....
вот такой бред.
то есть получается что то что было в UTF-8 стало в чем-тонепонятном, которое нужно еще раз из виндуса в ютф отобюражать (не преобразовать а отображать)
а то что было в winows1251 -становится нормлаьным UTF-8
ХЕЕЕЕЛП!!!
---------- Post added at 19:06 ---------- Previous post was at 17:29 ----------
Спасибо! буду эксперементировать!
так получилось что часть входящего материала идет в cp1251 часть d KOI-8, а часть в UTF8
соответственно UTF8 отображдается нормально, а останые идут иероглифами.
на вывод использовал такую фишку:
PHP:
<?
//начало парситсо
//вывод:
ob_start();
echo ($content);
$txt = ob_get_contents();
$txt = iconv("windows-1251", "utf-8", $txt);
ob_end_clean();
echo $txt;
?>
то есть использовал конверт Windows1251 в UTf-8, теперь началось веселье такое:
тот контент что был в windows-кодировке выводится нормально как utf, а тот контент который БЫЛ изначально в кодировке UTF-8 вываливается в крякозаблах...
замкнутый круг вообщем....
P.S. Самое веселое: копирую крякозяблы в буфер -вставляю в документ Notepag++ (по умолчанию windows1251) -тыкаю отобразить как UTF-8 - и вуаля -все отображается....
вот такой бред.
то есть получается что то что было в UTF-8 стало в чем-тонепонятном, которое нужно еще раз из виндуса в ютф отобюражать (не преобразовать а отображать)
а то что было в winows1251 -становится нормлаьным UTF-8
ХЕЕЕЕЛП!!!
---------- Post added at 19:06 ---------- Previous post was at 17:29 ----------
frantz1488 написал(а):Пишу сюда, ибо нима 40 постов, а помочь хочется, столкнулся с этой же проблемой только для двух кодировок win и utf вот мое решение:
PHP:<?php header('Content-Type: text/html; charset=utf-8'); // все будет выводится в utf-8 $text = utf8_convert($text, "w"); // Этап 1 перекодирует $text из UTF-8 в Windows-1251 // С помощью этой функции function utf8_convert($str, $type) { static $conv = ''; if (!is_array($conv)) { $conv = array(); for ($x=128; $x <= 143; $x++) { $conv['utf'][] = chr(209) . chr($x); $conv['win'][] = chr($x + 112); } for ($x=144; $x<= 191; $x++) { $conv['utf'][] = chr(208) . chr($x); $conv['win'][] = chr($x + 48); } $conv['utf'][] = chr(208) . chr(129); $conv['win'][] = chr(168); $conv['utf'][] = chr(209) . chr(145); $conv['win'][] = chr(184); } if ($type == 'w') { return str_replace($conv['utf'], $conv['win'], $str); } elseif ($type == 'u') { return str_replace($conv['win'], $conv['utf'], $str); } else { return $str; } } $text = iconv("windows-1251", "utf-8", "$text"); // Этап 2 перекодирует обратно в UTF-8 echo $text; ?>
Спасибо! буду эксперементировать!