Здравствуйте,
Samarit wrote:
> Dmitry Akindinov wrote:
>> Здравствуйте,
>>
>>> Поясню, что хотелось сделать: нужно во внешнее приложение передать
>>> параметр аккаунта, но приложение понимает по-русски только в
>>> кодировке cp1251. Первая мысль была ввести свой собственный системный
>>> параметр для аккаунтов, приписать ему значение через CLI командой
>>> UPDATEACCOUNTSETTINGS в cp1251. Все хорошо, но через административный
>>> веб-интерфейс параметр виден как "???" (логично так как CGP ожидает
>>> там utf-8) и при любом изменении установок аккаунта через веб эти
>>> "???" так и записываются обратно в файл account.settings (так наверно
>>> и должно быть). Вторая мысль была хранить параметр в account.info,
>>> т.е. так же приписать ему значение через CLI командой
>>> UPDATEACCOUNTINFO в cp1251. Так как этот параметр недоступен напрямую
>>> через веб, то он и не портится. Вот только непонятно теперь как его
>>> можно вытянуть в скрипте CGPL: GetAccountPreferences его не берет,
>>> так как имеет доступ "только к той части, которая предусмотрена для
>>> хранения настроек интерфейса", a GetAccountInfo похоже действует
>>> только для текущего аккаунта (Impersonate не подойдет).
>>> Видимо моя идея изначально было неудачная :).
>>
>> Да уж.
>>
>> Правильный подход - хранить в utf-8, а непосредственно перед
>> скармливанием внешнему приложению - переводить в нужную кодировку.
>>
> А можно перевести прямо внутри скрипта или вызвать внешнюю системную
> команду из скрипта для этого?
Зависит от того, как вы передаете все это во внешнее приложение. В CGPL
возможностей для конвертации строк нет, но во внешнюю программу вы
данные отдаете через HTTPCall(), наверное? На другом конце которого -
CGI скрипт. Если скрипт на Perl, то для Perl точно есть модули для
конвертации utf в другие кодировки.
--
Best regards,
Dmitry Akindinov
Получено Tue May 22 13:02:42 2007