![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Нужен совет.
Задача обычная скачать страничку (просто текст)
И во когда победа вроде бы близка и стоит открыть файл и пропустить через фильтры ... В файле привет от китайского посла. Кодировки... Какая у меня? в какую конвертировать...? В общем в данном случае бесплодие методом тыка не лечится((( Вот. Сижу под линухами Alt. P.S. при чём что интересно в консоли всё ок а файл в иероглифах. И вообще может есть толее цивилизованый метод получить чистый текст... Заранее спасибо. Это сообщение отредактировал(а) Axe79 - 21.7.2009, 01:16 |
|||
|
||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 2 Всего: 34 |
А ты уверен, что исходная страница в "Windows1251", ты б сначала использовал find_encoding....
|
|||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
не уверен...
если не тяжело приведите пример использования... Просто в перловском ООП я новичок и немного путаюсь с синтаксисом((( Добавлено @ 09:06 Вроде как на CPAN-е Encode::Alias ? [$obj =] find_encoding(ENCODING) $obj---это опредиляемый текст? ENCODING--- это кодировка...? в общем в таком формате не работает
Это сообщение отредактировал(а) Axe79 - 21.7.2009, 09:07 |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Axe79, код у вас в первом посте вполне рабочий. Это подтверждает то, что при выводе на консоль текст читаем. Проблема у вас с текстовым редактором, где вы затем пытаетесь открыть сохраненный файл. Этот редактор либо не поддерживает utf8, либо по умолчанию открывает текст в неверной кодировке. Что это за редактор?
|
|||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
автоматически открывает в Konqeror
Закидываю в мозиллу тоже самое Опен офис Аналогично только если в простом kwrite то никаких проблем с кодировкой но у меня задача загрузив и сохранив страничку в файле открыть и пропустить через фильтры боюсь что я не туда забрёл... Потому что от тегов шаблонов и линков простым открытием не избавиться... то-есть если-б скрипт выдавал чистый текст я его наверное даже не сохранял а пускал в обработку Простите за сумбурность Добавлено через 7 минут и 59 секунд но на будущее универсальный определитель исходной кодировки не помешал бы... ![]() ![]() |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Ну ясное дело что в браузере страница открывается в неверной кодировке, потому как в коде страницы не указан charset. Вам нужно удалить все теги и оставить только текст? Посмотрите в сторону модуля HTML::FormatText. Если вам нужно извлечь какой-то конкретный текст страницы можно будет обойтись и простым регулярным выражением.
|
|||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
а есть какая-то основоположная разница между использованием регулярных выражений для очистки от гипертекстовой разметки?
и использованием модуля HTML::FormatText я например почти полностью обошёлся такими шаблонами:
может я и не прав ... Посоветуйте. Добавлено через 2 минуты и 27 секунд просто в шаблонах немного разбираюсь а с HTML::FormatText нет. да и внятных примеров чего-то не нашёл. |
|||
|
||||
burakov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день,
работаю под Windows... так что немного у меня не так как у Вас, код который дал Axe79 действительно что то делает, но Encode как то не так срабатывает.... Я его переписал на свой манер (именно там где используется Encode) и у меня под windows все нормально заработало..... может мой код поможет?
|
|||
|
||||
yorm |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
похоже, что кодировка правильная (utf8) но без флага. Распространенная проблема. Попробуй включить _utf8_on() - в строку добавится флаг. Если правильно понял, проблема узнать, в какой кодировке действительно отсылается страница? Я смотрю Firefox -> View -> Character Encoding, обычно так показывает правильно. А вообще, для конвертации можно использовать Text::Iconv, конвертирует на ура (но проблему с флагом не решает) |
|||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Ещё один нюанс.
Язык украинский и почему то вместо некоторых букв идут непечатаемые символы. используется такая кодировка
вот результаты: рстві� із ПопитБIЗНЕС-� ЕКЛАМАГ короче "Р" глючит и "Э" |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
||||
|
||||
Axe79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
||||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Что то я не обнаружил тут ни символа "Р", ни символа "Э". Тут есть "Р", но он как и положено после сохранения отображается символом "Р". Проверено на следующем однострочнике:
|
|||
|
||||
mrrico |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 28.7.2009 Репутация: нет Всего: нет |
Имхо,
utf не совсем обычный текст. Можно довольно часто дать print на utf текст и скрипт обломится. wide character. Думаю, решение было в том, чтобы дать на текстовый файлхэндл вот такую штуку:
Тогда бы и utf в файл нормально записался. |
|||
|
||||
chorny |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.7.2009 Где: Молдавия Репутация: нет Всего: нет |
Кстати сайт правильно пишет в заголовках: "Content-Type: text/html; charset=windows-1251"
Вот так у меня правильно отображается страница в Firefox
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |