Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Бьется кодировка при разборе html, На входе utf-8, на выходе крякозябры. 
:(
    Опции темы
dcrom
Дата 16.9.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.8.2008

Репутация: нет
Всего: нет



Подскажите, пожалуйста, почему при выводе "бьётся" кодировка utf-8?

Т.е. в файле utf-8, а на выходе кракозябры.


Код


#!/usr/bin/perl
use HTML::TokeParser;
use CGI;
use CGI::Carp qw (fatalsToBrowser); # выводим ошибки в браузер

$cgi = new CGI;
print $cgi->header( -charset=>'utf-8' );

no warnings utf8;

 $p = HTML::TokeParser->new("./file") || die "Can't open: $!"; 
 while ($token = $p->get_trimmed_text( "/strong" )){
     $result .= "$token\n";
 };
print "\n\n$result";





Задача - научится парсить html.
PM MAIL   Вверх
nitr
Дата 16.9.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



dcrom, вы уверены что у вас utf-8? А локаль какая? Файл utf-8?

Добавлено через 7 минут и 28 секунд
nitr, у меня ваш скрипт отработал нормально.
Я данную страницу форума сохранил как file в кодировке UTF-8. Потом запустил ваш скрипт, на выходе получил контент в UTF-8.

Добавлено через 8 минут и 25 секунд
use utf8; и use locale; поможет? smile


--------------------
PM   Вверх
dcrom
Дата 16.9.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.8.2008

Репутация: нет
Всего: нет



Уверен в том, что utf-8. Сам собирал генту с поддержкой utf. =)

Странно в том, что другой скрипт, который я писал ранее работает нормально. На основе того скрипта сделал этот.
Методом эксперимента выяснил, что после get_trimmed_text становится все плохо.

use добавил. не помогло. 


PM MAIL   Вверх
nitr
Дата 16.9.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



dcrom, покажите кусок файла (а лучше вложите) ./file .

Добавлено через 1 минуту и 2 секунды
[offtopic]
Цитата(dcrom @  16.9.2008,  16:58 Найти цитируемый пост)
Сам собирал генту с поддержкой utf. =)

Так он сейчас и так с этой поддержкой smile

Добавлено через 1 минуту и 53 секунды
dcrom, дома проверю на линухах... На работе Windows...
А версия Perl (perl -v) какая?


--------------------
PM   Вверх
nitr
Дата 16.9.2008, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



dcrom,  аналогично в линукс
Цитата
$locale
LANG=ru_RU.UTF8
LC_CTYPE="ru_RU.UTF8"
LC_NUMERIC="ru_RU.UTF8"
LC_TIME="ru_RU.UTF8"
LC_COLLATE=C
LC_MONETARY="ru_RU.UTF8"
LC_MESSAGES="ru_RU.UTF8"
LC_PAPER="ru_RU.UTF8"
LC_NAME="ru_RU.UTF8"
LC_ADDRESS="ru_RU.UTF8"
LC_TELEPHONE="ru_RU.UTF8"
LC_MEASUREMENT="ru_RU.UTF8"
LC_IDENTIFICATION="ru_RU.UTF8"
LC_ALL=
$


Добавлено через 1 минуту и 41 секунду
Я сохранил данную страницу http://forum.vingrad.ru/forum/topic-228674...arser-utf-.html как file - кодировка file utf8 =)

Добавлено через 1 минуту и 53 секунды
Скрипт отработал на все 100%


--------------------
PM   Вверх
dcrom
Дата 18.9.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.8.2008

Репутация: нет
Всего: нет



Спасибо!
Попробую запустить на другом компьютере. Там стоит Ubuntu c UTF-8.

PM MAIL   Вверх
nitr
Дата 18.9.2008, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



dcrom, а вы попытались взять данный форум как пример ? И на нём протестить ваш скрипт?


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.