Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Перекодировка из &#xxxx; в удобочитаемый   Найти похожие ветки 

 
demon ©   (2010-05-17 19:32) [0]

При парсинге html наткнулся на строки, закодированные вот в таком виде &#xxxx;&#xxxx;&#xxxx; (где xxxx это цифра).
Помогите раскодировать...


 
Юрий Зотов ©   (2010-05-17 22:15) [1]

А что должно из этой строки получиться?


 
RWolf ©   (2010-05-17 22:17) [2]

как-то так:
strRes:="";
i:=1;
while i<=length(strDoc)-7 do begin
 if Copy(strDoc,i,2)="&#" then begin
   strRes:=strRes+chr(StrToInt("$"+Copy(strDoc,i+2,4)));
   inc(i,6);
 end
 else strRes:=strRes+strDoc[i];
 inc(i);
end;


 
Игорь Шевченко ©   (2010-05-18 00:43) [3]


> При парсинге html наткнулся на строки, закодированные вот
> в таком виде &#xxxx;&#xxxx;&#xxxx; (где xxxx это цифра).
>  


Это юникод


 
Германн ©   (2010-05-18 01:03) [4]


> Игорь Шевченко ©   (18.05.10 00:43) [3]

Телепат!
:)


 
HTML   (2010-05-18 10:53) [5]


> Германн ©   (18.05.10 01:03) [4]
>
> > Игорь Шевченко ©   (18.05.10 00:43) [3]
>
> Телепат!
> :)


"&#xxxx;" - cтандартное представление символов в HTML


 
demon ©   (2010-05-18 15:41) [6]

RWolf, не работает ваш вариант.


 
RWolf ©   (2010-05-18 15:45) [7]

[6], я его не проверял. Сейчас вижу, что "$"+ там явно лишнее.


 
demon ©   (2010-05-18 17:48) [8]

Rwolf, предложенный вами алгоритм не подходит для раскодировки, вместо слова "Сервер" (это &#1057;&#1077;&#1088;&#1074;&#1077;&#1088; ) он выдал !5@25@


 
demon ©   (2010-05-18 17:50) [9]

хм, в скобках я указал в закодированном виде, но браузер естественно отображает это читаемом виде :)


 
demon ©   (2010-05-19 02:00) [10]

Нашел в интернете что это кодировка CP-1251  (http://www.orwell.ru/test/CP/_?cp1251)
Но не смог раскодировать, так что вопрос актуальный


 
Германн ©   (2010-05-19 02:10) [11]


> Но не смог раскодировать, так что вопрос актуальный

Ты Игорь Шевченко ©   (18.05.10 00:43) [3] прочитал?


 
demon ©   (2010-05-19 03:05) [12]

Но он не прав! Какой же это Юникод?
Это CP-1251, я проверял по таблице что в моем предыдущем посте, все символы сходятся. Тем более в шапке страницы, которую я собираюсь парсить  указано: charset=windows-1251.


 
Германн ©   (2010-05-19 03:13) [13]


> demon ©   (19.05.10 03:05) [12]
>
> Но он не прав! Какой же это Юникод?

Ну, ну. :)


 
demon ©   (2010-05-19 03:35) [14]

Вот так получилось :)

function HTMLCharsToStr(strDoc: string): String;
var
 i: integer;
 W : WideChar;
begin
 Result:="";
 i:=1;
 while i<=length(strDoc)-7 do begin
  if Copy(strDoc,i,2)="&#" then begin
    Result:=Result+WideChar(StrToInt(Copy(strDoc,i+2,4)));
    inc(i,6);
  end
  else Result:=Result+strDoc[i];
  inc(i);
 end;
end;


 
Anatoly Podgoretsky ©   (2010-05-19 06:28) [15]

> demon  (19.05.2010 03:05:12)  [12]

Неправ ты, партизано сапиенс.


 
Плохиш ©   (2010-05-19 11:11) [16]

Хм

> demon ©   (19.05.10 03:05) [12]
>
> Но он не прав! Какой же это Юникод?


> demon ©   (19.05.10 03:35) [14]
> Вот так получилось :)

>     Result:=Result+WideChar(StrToInt(Copy(strDoc,i+2,4)));
>

не сходится.


 
demon ©   (2010-05-19 11:56) [17]

Ну, значит я не прав был, не знал просто что Юникод такой бывает, обычно вижу что-то вроде Сервер


 
Исламбек Курдюкбаев   (2010-05-19 18:20) [18]

Удалено модератором
Примечание: Забаню за неуважение к правилам



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.058 c
2-1274322405
03111978
2010-05-20 06:26
2010.08.27
Работа с файлом


2-1270871051
tippa
2010-04-10 07:44
2010.08.27
Synchronize и критические секции


15-1275738264
Desdechado
2010-06-05 15:44
2010.08.27
Если б человек не мог врать, как изменился бы мир?


2-1272979946
viktooor
2010-05-04 17:32
2010.08.27
Лицензия в 2010


15-1267459908
PEAKTOP
2010-03-01 19:11
2010.08.27
Первая Украинская конференция по Firebird