Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Перекодировка из &#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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.086 c
6-1223985468
flags8192
2008-10-14 15:57
2010.08.27
HTTP и Cookies


6-1221550924
Colt
2008-09-16 11:42
2010.08.27
SimpleMapi из Win Service


2-1262612569
ZV
2010-01-04 16:42
2010.08.27
Компонент TMS Async 32 (СОМ порт) ,объясните как с ним работать


15-1269190277
конструктор
2010-03-21 19:51
2010.08.27
АОП в DELPHI


2-1273316321
FIL-23
2010-05-08 14:58
2010.08.27
как добавить поле в индифицирующую колонку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский