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

Вниз

кириллица в ссылке   Найти похожие ветки 

 
marcel   (2005-10-07 10:36) [0]

Имеется у меня следующее.
WinXP, Apache 2.0.43. CGI-приложение написанное на Дельфи(далее project1.exe).
Во такая у меня проблемы.  
project1.exe формирует HTML-страничку, где сть ссылка подобного вида .....project1.exe?var1=наименование. Т.е. значение переменной var1 - строка, состоящая из кириллицы. При переходе на эту ссылку в адресной строке кириллическое значение заменяется кодами вида %ХХ. Скриптом все обрабатывается нормально, даннные выдаются корректные. Но только если пользоваться браузером Opera или Firefox. Если же Internet Explorer"ом, то при переходе на такую ссылку в адресной строке отображается кириллица так как есть, но в скрипт попадает тарабарщина %ХХ. Когда разрабатывался project1.exe (года два назад. тогда правда Apache стоял на Win98) в Эксплорере все проверялось и все работало. В какой момент появился глюк - сказать не могу, т.к. сам прользуюсь Oper"ой - а там все работает. Вопрос в следующем - что делать? :)
1. Можно ли что-то указать в настройках Explorer"a, Apache?
2. Можно проверять с какого браузера было обращение и перекодировать соответствующие поля, но....Где взять соответствующую таблицу перекодировки или хотя бы по каким ключевым словам искать в инете?

Прбовал менять в свойствах Explorer"a "Всегда отправлять адреса в UTF-8". Не помогло.


 
marcel   (2005-10-07 10:52) [1]

Пока писал вопрос - осенило и попоробовал следующее.
Запустил подобную ситуацию где Apache на  Win98. Здесь в Explorer"e все замечательно работает. Т.е. проблема в том, что Apache у меня на XP? Может есть идеи?


 
atruhin ©   (2005-10-09 10:56) [2]

>>2. Можно проверять с какого браузера было обращение и перекодировать >>соответствующие поля, но....Где взять соответствующую таблицу >>перекодировки или хотя бы по каким ключевым словам искать в инете?
Описание HTTP протокола. Никакой таблицы в принципе не нужно. Формат %код символа. Примерно так:
Tmp := Pos("%", fAddress); // восстанавливаем шестнадцатиричные символы
while Tmp <> 0 do begin
     try
       Ch := StrToInt("$"+copy(fAddress,Tmp + 1, 2));
       fAddress[Tmp] := char(Ch);
       delete(fAddress, Tmp + 1, 2);
     except
     end;
     Tmp := Pos("%", fAddress);
end;


 
denissoft ©   (2005-10-09 18:29) [3]

function FormatStringforCGI(str: string): string;
var
  i: integer;
begin
  for i := 1 to Length(str) do
  begin
    if str[i] in ["a".."z", "A".."Z", "0", "1".."9"] then
      Result := Result + Str[i]
    else if Str[i] = " " then
      Result := Result + "+%20+"
    else
      Result := Result + "%" + IntToHex(Byte(Str[i]), 2);
  end;
end;


 
marcel   (2005-10-10 09:59) [4]

Я вас немножко обманул. %хх здесь практически не причем.
Сдается мне, что когда IE отправляет запрос к Apache(WinXP), то  кириллица перекодируется в ...даже не знаю, UTF-8, что ли?
Т.е. на страничке и в HTML коде вместо
"Привет я тут",
выводится
"I?eaao y ooo"
А когда Apache на Win98, то такой байды не происходит, хотя обращаешься из тогоже окна IE.
Можно в web-приложении как-то определить/перекодировать ответ из Юникода в 1251? Или может IE или Apache как-нить рога вправить?


 
ShiFT   (2005-10-10 10:15) [5]

uses HTTPApp
URI := "project1.exe?var1=" HTMLEncode("наименование");


 
ShiFT   (2005-10-10 10:17) [6]

uses HTTPApp;

URI := "project1.exe?var1=" + HTMLEncode("наименование");


 
marcel   (2005-10-10 11:28) [7]

>ShiFT
Такой ф-ции не нашел. Написал свою. Все элементарно. Вроде работает при любых комбинациях браузер/операционка.

function StringToHex(s:string):string;
var i:word;
   sResult:string;
begin
 sResult:="";
 for i:=1 to length(s) do
   sResult:=sResult+"%"+IntToHex(ord(sResult[i]),2);
 Result:=sResult;
end;


Но факт остается фактом. Если через IE переходить по ссылке с чистой кириллицей к Apache на XP, то с кодировкой не лады. Может кто-то у попробует смоделировать?



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.053 c
2-1136223807
axel65
2006-01-02 20:43
2006.01.22
Символы


2-1135852497
Dmitrij_K
2005-12-29 13:34
2006.01.22
Ускорение поиска файлов


4-1131661860
sergey1
2005-11-11 01:31
2006.01.22
как можно создать на чистом Windows API без применения визуальны


2-1136475809
mozgan
2006-01-05 18:43
2006.01.22
Работа с таймером


2-1136315499
JazY
2006-01-03 22:11
2006.01.22
4 простых вопроса по DBgrid





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