SASGIS - SAS.Планета
View Issue Details
0002697SAS.ПланетаРефакторингpublic24-04-2015 01:5303-11-2015 13:24
vasketsov 
vdemidov 
normalminorN/A
resolvedfixed 
Windows7Ultimate
141212 
150915150915 
0002697: Unicode: логин и пароль (IProxyConfig) должны быть в Unicode
Речь идёт про IProxyConfig:

    function GetLogin: AnsiString; safecall;
    procedure SetLogin(const AValue: AnsiString);
    property Login: AnsiString read GetLogin write SetLogin;

    function GetPassword: AnsiString; safecall;
    procedure SetPassword(const AValue: AnsiString);
    property Password: AnsiString read GetPassword write SetPassword;

Либо их надо заменять на Unicode, и соответственно ковырять при использовании, а в форме настроек показывать как есть, либо оставлять так, но тогда в форме настроек надо конвертировать в/из UTF-8.
Иначе китайским извращенцам будет просто и молча не залогиниться.
No tags attached.
Issue History
24-04-2015 01:53vasketsovNew Issue
24-04-2015 08:49vdemidovNote Added: 0015726
24-04-2015 08:49vdemidovStatusnew => confirmed
24-04-2015 08:49vdemidovProduct Version => 141212
24-04-2015 08:49vdemidovTarget Version => 150915
28-08-2015 20:22vdemidovStatusconfirmed => resolved
28-08-2015 20:22vdemidovFixed in Version => 150915
28-08-2015 20:22vdemidovResolutionopen => fixed
28-08-2015 20:22vdemidovAssigned To => vdemidov
03-11-2015 13:24zedNote Added: 0016713

Notes
(0015726)
vdemidov   
24-04-2015 08:49   
Ну, учитывая, что потом оно все равно передается в вызов InternetSetOptionA внутри alcinoe, то у китайцев все равно шансов не будет, но в целом согласен, что можно заменить на обычный string
(0016713)
zed   
03-11-2015 13:24   
По стандарту, Basic авторизация, к примеру, требует чтобы кодировка символов username/pass была в ISO-8859-1 (только латиница). Позже, решили, что по усмотрению сервера, можно использовать и utf-8: The 'Basic' HTTP Authentication Scheme.

То же самое и для Digest, если не ошибаюсь. За другие - не скажу.

Поскольку мы доверяем авторизацию WinInet-у, то максимум, что мы можем сделать - использовать юникодные версии функций и передать туда WideString, с надеждой, что используемый тип авторизации поддерживает юникод.

Использовать же utf-8 и передавать его в ансишные версии функций, как сделано сейчас, сильно ошибочно. В этих функциях Windows ожидает текст в системной кодировке и будет поступать с текстом соответсвующе, при необходимых перекодировках.