Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировкой, Utf8ToAnsi не помогает 
V
    Опции темы
Akella
  Дата 20.1.2010, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Установил последнюю версию версию Indy 10.50.7
Код

Memo1.Text := Utf8ToAnsi( IdHTTP1.Get('http://www.kvartalexpress.org.ua/'));
Memo1.Text := IdHTTP1.Get('http://www.kvartalexpress.org.ua/');

Оба кода возвращают вместо кириллицы ???? ????????? ???? ????? знаки вопросов.
Читал, что инди, начиная с версии 10.5 сам пытаются выполнять конвертирование между кодировками. Но толку нету.
Может кто подскажет как решить проблему?
PM MAIL   Вверх
businessnet
Дата 21.1.2010, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Что никто не может помочь ?  сроки по софту горят ..... (      зря обновился )

Может написать в их техподдержку 
http://forums2.atozed.com/viewforum.php?f=...f93d3dd1ea13af1

напишите плиз, кто в английском силен, а то я неочень )) 

Это сообщение отредактировал(а) businessnet - 21.1.2010, 01:32
PM MAIL   Вверх
Akella
Дата 21.1.2010, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Я написал вчера вечером на их форуме. Но тема пока что даже не появилась. Ждёт премодерации.

Это сообщение отредактировал(а) Akella - 21.1.2010, 10:35
PM MAIL   Вверх
Akella
Дата 21.1.2010, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Народ, проверьте этот код у кого установлена D2007 и Indy 10.5.7
Код

procedure TForm1.Button1Click(Sender: TObject);
var M:TStringStream;
begin
 M:=TStringStream.Create('');
 idHTTP1.Get('имя юникодного сайта, например винград',M);
 Memo1.Lines.Text:=M.DataString;
 M.Free;
end;

PM MAIL   Вверх
Akella
  Дата 21.1.2010, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Код

Memo1.Lines.Text := M.DataString;


Возвращает юникодный текст, т.е. уже не знаки вопросов.

Код

Memo1.Lines.Text := UTF8Decode(M.DataString);


и
Код

Memo1.Lines.Text := Utf8ToAnsi(M.DataString);


возвращает пустоту (( 

D2007, Indy 10.1.5

Добавлено через 12 минут и 35 секунд
В юникодном контенте встречаются русские символы. Например, Яндекс.Директ. И поэтому Utf8ToAnsi запинается, и возвращает пустоту. Как удалить вот такой мусор типа Яндекс.Директ из полученного контента?

Это сообщение отредактировал(а) Akella - 21.1.2010, 13:54
PM MAIL   Вверх
businessnet
Дата 21.1.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

procedure TForm1.Button1Click(Sender: TObject);
var M:TStringStream;
begin
M:=TStringStream.Create('');
idHTTP1.Get('http:\\programmersforu m.ru',M);
Memo1.Lines.Text:=M.DataString;
M.Free;
end;


нормально заработало. буду юзать этот вариант.  delphi7+ последняя инди

Это сообщение отредактировал(а) businessnet - 21.1.2010, 16:02
PM MAIL   Вверх
Romikgy
Дата 21.1.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(businessnet @  21.1.2010,  15:02 Найти цитируемый пост)
programmersforu m.ru

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

это не unf8!!!!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Romikgy, поздно, он уже в оффлайне smile 
PM MAIL   Вверх
businessnet
Дата 21.1.2010, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

это не unf8!!!! 


если это мне, то то я и не говорил что там utf8, я сказал что такая конструкция получения контента работает нормально. как с utf8 так и с windows-1251 

Это сообщение отредактировал(а) businessnet - 21.1.2010, 18:20
PM MAIL   Вверх
Akella
Дата 21.1.2010, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



businessnet, не всегда  smile 

Цитата(Akella @  21.1.2010,  13:52 Найти цитируемый пост)
В юникодном контенте встречаются русские символы. Например, Яндекс.Директ. И поэтому Utf8ToAnsi запинается, и возвращает пустоту. Как удалить вот такой мусор типа Яндекс.Директ из полученного контента?


PM MAIL   Вверх
businessnet
Дата 21.1.2010, 19:44 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



берем список символов юникода. туда же добавляем пробел, знаки разделители и т.д. 
берем полученый контент.
в цикле перебираем посимвольно, если есть символ в таблице юникода, то откидаем в результирующую переменную, если нет пропускаем. 

туда же добавляем проверку если символ разделитель между двух не юникодных символов - тоже пропустить. 


по идее должно помочь ...  


Это сообщение отредактировал(а) businessnet - 21.1.2010, 19:50
PM MAIL   Вверх
Akella
Дата 21.1.2010, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



И сколько по времени будет проверяться контент одной страницы?? Если ещё учесть, что страницу нужно получить, отпарсить...
PM MAIL   Вверх
businessnet
Дата 21.1.2010, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну так не всю же страницу со всеми html и прочими кодами проверять таким образом.

разпарсить нужную часть и потом юзать.. 

+ сделать проверку если если возвращает как вы говорите пустую переменную когда неудачно конвертит из за того что есть русские символы.,

то только тогда использовать метод. 

меня по скорости устраивает, а там смотрите сами. 

PM MAIL   Вверх
Akella
Дата 21.1.2010, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



PM MAIL   Вверх
Akella
Дата 22.1.2010, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Оказывается, что UTF8ToStrSmart обрезает контент  smile

Добавлено через 4 минуты и 49 секунд
Поспешил. Оказалось, что переменная i объявлена как word и длинный контент  обрезался. Объявил переменную i как integer  smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

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

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


 




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


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

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