Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2010, 18:06   #1
mega-X-mozg
 
Регистрация: 13.02.2010
Сообщений: 8
По умолчанию Delphi коды символов HTML в русский язык

Отправляю c параметрами:
Код:
IdHTTP.Post('http://site.ru', param);
Получаю код страницы в memo, а русский язык там в спец. символах html
Безымянный.bmp
Это можно как то исправить?
mega-X-mozg вне форума Ответить с цитированием
Старый 25.02.2010, 18:58   #2
mega-X-mozg
 
Регистрация: 13.02.2010
Сообщений: 8
По умолчанию

что никак нельзя?!
mega-X-mozg вне форума Ответить с цитированием
Старый 25.02.2010, 19:53   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

это было сделано, чтобы однозначно отображать русский и другие символы в браузерах, особенно мобильных устройствах... в wml это повсеместно, не путать с современным xhtml

составьте табличку соответствий, пример обратной конвертации...
Код:
   'а': tmp:= 'а';
   'б': tmp:= 'б';
   'в': tmp:= 'в';
   'г': tmp:= 'г';
   'д': tmp:= 'д';
   'е': tmp:= 'е';
   'ж': tmp:= 'ж';
   'з': tmp:= 'з';
   'и': tmp:= 'и';
   'й': tmp:= 'й';
   'к': tmp:= 'к';
   'л': tmp:= 'л';
   'м': tmp:= 'м';
   'н': tmp:= 'н';
  ...
   'Ц': tmp:= 'Ц';
   'Ч': tmp:= 'Ч';
   'Ш': tmp:= 'Ш';
   'Щ': tmp:= 'Щ';
   'Ъ': tmp:= 'Ъ';
   'Ы': tmp:= 'Ы';
   'Ь': tmp:= 'Ь';
   'Э': tmp:= 'Э';
   'Ю': tmp:= 'Ю';
   'Я': tmp:= 'Я';
вам нужно парсить текст и сделать прямую... пример
Код:
&#десять96; - вот тут браузер подменил на "ш", хотя я писал 1096 :)
ш
обе эти записи соответствуют букве "ш", только первая в десятичном, вторая в hex
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 25.02.2010 в 20:00.
raxp вне форума Ответить с цитированием
Старый 25.02.2010, 20:13   #4
mega-X-mozg
 
Регистрация: 13.02.2010
Сообщений: 8
По умолчанию

Я по тому же принципу и собирался сделать, но мне показалось что код получится слишком большой.
mega-X-mozg вне форума Ответить с цитированием
Старый 25.02.2010, 20:26   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

ну так используйте ту особенность, что коды русских символов идут от [192-255] -> ord('A..я') и просто вычитайте... к примеру: & # 1072; -> 'a' -> 224... разница 848, значит 1072 - 848 = 224, а char(224) = a... и не будет громоздким, как-то так...
Код:
 parser('а');
...

 function parser(s: string): char;
 begin
  result:= char(strtoint(copy(s, 3, length(s)-1)) - 848)
 end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 26.02.2010, 16:56   #6
mega-X-mozg
 
Регистрация: 13.02.2010
Сообщений: 8
По умолчанию

raxp, спасибо!
Получилось так, криво, но зато работает
Код:
function parser(ht: string): string;
begin
while Length(ht) > 0 do
begin
Delete(ht, 1, 2);
Delete(ht, 5, 1);
result:=result+chr(strtoint(copy(ht, 1, 4))-848);
Delete(ht, 1, 4);
end;
end;
И код обратно из русского в спец. символы html
Код:
function htmlparser(ht: string): string;
var i : Integer;
begin
for i:=1 to length(ht) do
if ht[i] in ['а'..'я','А'..'Я'] then
result:=Result+'&#'+inttostr(Ord(ht[i])+848)+';'
else if ht[i]=' ' then
Result:=Result+' '
else if ht[i]=#13 then
Result:=Result+#13#10
else
Result:=Result+ht[i]
end;

Последний раз редактировалось mega-X-mozg; 27.02.2010 в 08:56.
mega-X-mozg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление кавычек(коды символов) [MI_nor] PHP 4 22.01.2010 22:07
коды символов следующие за введенными strateg66 Помощь студентам 9 11.10.2009 19:43
Коды клавиш и символов в Дельфи DeKot Общие вопросы Delphi 2 24.11.2008 08:21
Коды символов SeregaIRK Общие вопросы Delphi 2 10.07.2008 19:33
Русский язык Elefanter Свободное общение 14 22.02.2008 16:23