Главная страница
    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.071 c
6-1222066908
Michael
2008-09-22 11:01
2010.08.27
Именованые каналы - сетевое использование


2-1267876445
worldmen
2010-03-06 14:54
2010.08.27
Поиск пикселя в картинке.


2-1274946870
Delphist2
2010-05-27 11:54
2010.08.27
подойдет ли TStringList?


15-1270672202
Юрий
2010-04-08 00:30
2010.08.27
С днем рождения ! 8 апреля 2010 четверг


2-1270210954
JohnKorsh
2010-04-02 16:22
2010.08.27
Смена MAC адреса.





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