C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как преобразовать текст из адресной строки, браузера в AnsiString
_esh
Отправлено: 14.02.2006, 20:09


Не зарегистрирован







Помню, что где-то было, но не смог найти.
Пишу CGI. Нужно преобразовать строку с параметрами в AnsiString,
в исходном виде в ней некоторые символы заменяются на %HH,
например:
http://192.168.10.145/%D1%81%D1%82%D1%80%D...%B8%D1%86%D0%B0

Проблема в том, что я не знаю всех правил преобразования...
_esh
Отправлено: 14.02.2006, 20:20


Не зарегистрирован







Я забыл сказать главное: я пишу под MSVS 2003, а там нет UTF8ToAnsi...
GIZMO
Отправлено: 15.02.2006, 13:10


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (_esh @ 14/02/2006, 20:09)
Помню, что где-то было, но не смог найти.
Нужно преобразовать строку с параметрами в AnsiString,
в исходном виде в ней некоторые символы заменяются на %HH,
например:
http://192.168.10.145/%D1%81%D1%82%D1%80%D...%B8%D1%86%D0%B0

Проблема в том, что я не знаю всех правил преобразования...

Вроде надо использовать URLCanonicalize

QUOTE
Пишу CGI.

Есть вопросы.
_esh
Отправлено: 15.02.2006, 14:44


Не зарегистрирован







>> Вроде надо использовать URLCanonicalize
Спасибо. А как теперь конвертировать из UTF8 в ANSI?

>> Есть вопросы.
Я бы поставил Apache, инсталлятор весит около четырех метров, настраивать почти не нужно.
_esh
Отправлено: 15.02.2006, 19:22


Не зарегистрирован







Что-то я не могу понять логику майкрософтовских программеров.

В приведенном коде цикл не выполняется, если в строке нет символа '&',
т.е. ВООБЩЕ не выполняется и szTemp типа char* после цикла не изменяется.

for(;*szTemp;szTemp++) if(*szTemp=='&') dwMaxCount++;
szTemp=szBuffer;

Б..., отлаживать невозможно, ну нафиг включать супер-пупер оптимизацию, если выбрана конфигурация Debug.

Вот теперь думаю, стоит ли оставлять (и писать дальше) код в такой форме, выполняться то он должен быстрее, чем это:

for(int i=0;szTemp[i];i++) if(szTemp[i]=='&') dwMaxCount++;

Или компилятор сам оптимизирует...
_esh
Отправлено: 15.02.2006, 19:42


Не зарегистрирован







Я переоценил майкрософтовских программеров...
Будет ли выполняться этот код, зависит, похоже, только от фазы луны во время компиляции, т.е. может откомпилироваться нормально, а может и нет...
_esh
Отправлено: 17.02.2006, 13:31


Не зарегистрирован







Оказалось, что URLCanonicalize конвертирует в какой-то свой формат... и не ANSI и не UTF8

Вернуться в Вопросы программирования в C++Builder