Главная страница
    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.081 c
15-1268861402
Юрий
2010-03-18 00:30
2010.08.27
С днем рождения ! 18 марта 2010 четверг


6-1222332748
santey
2008-09-25 12:52
2010.08.27
winsock2


15-1272573005
Юрий
2010-04-30 00:30
2010.08.27
С днем рождения ! 30 апреля 2010 пятница


2-1274637067
REX
2010-05-23 21:51
2010.08.27
Печать


4-1172734473
Darth Avenger
2007-03-01 10:34
2010.08.27
Купюроприемник CashCode, протокол ccnet





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский