-
При парсинге html наткнулся на строки, закодированные вот в таком виде xxx;xxx;xxx; (где xxxx это цифра).
Помогите раскодировать...
-
А что должно из этой строки получиться?
-
как-то так:
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;
-
> При парсинге html наткнулся на строки, закодированные вот
> в таком виде xxx;xxx;xxx; (где xxxx это цифра).
>
Это юникод
-
> Игорь Шевченко © (18.05.10 00:43) [3]
Телепат!
:)
-
> Германн © (18.05.10 01:03) [4]
>
> > Игорь Шевченко © (18.05.10 00:43) [3]
>
> Телепат!
> :)
"xxx;" - cтандартное представление символов в HTML
-
RWolf, не работает ваш вариант.
-
[6], я его не проверял. Сейчас вижу, что '$'+ там явно лишнее.
-
Rwolf, предложенный вами алгоритм не подходит для раскодировки, вместо слова "Сервер" (это Сервер ) он выдал !5@25@
-
хм, в скобках я указал в закодированном виде, но браузер естественно отображает это читаемом виде :)
-
-
> Но не смог раскодировать, так что вопрос актуальный
Ты Игорь Шевченко © (18.05.10 00:43) [3] прочитал?
-
Но он не прав! Какой же это Юникод?
Это CP-1251, я проверял по таблице что в моем предыдущем посте, все символы сходятся. Тем более в шапке страницы, которую я собираюсь парсить указано: charset=windows-1251.
-
> demon © (19.05.10 03:05) [12]
>
> Но он не прав! Какой же это Юникод?
Ну, ну. :)
-
Вот так получилось :)
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;
-
> demon (19.05.2010 03:05:12) [12]
Неправ ты, партизано сапиенс.
-
Хм
> demon © (19.05.10 03:05) [12]
>
> Но он не прав! Какой же это Юникод?
> demon © (19.05.10 03:35) [14]
> Вот так получилось :)
> Result:=Result+WideChar(StrToInt(Copy(strDoc,i+2,4)));
>
не сходится.
-
Ну, значит я не прав был, не знал просто что Юникод такой бывает, обычно вижу что-то вроде Сервер
-
Удалено модератором
Примечание: Забаню за неуважение к правилам