[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Отправка письма с вложением из командной строки (Исправленно)



On 2009.12.09 at 21:49:02 +0900, Alexander Danilov wrote:

> Victor Wagner пишет:
>
>>
>> Глубокое непонимание всеми невиндовыми программистами тонкой разницы
>> между ANSI и OEM кодировками в винде. Из-за чего пользоваться
>> портированными на винду консольными программами можно только если тебе
>> не нужны иные кодовые страницы кроме CP1252.
>>
>>
>
> Виктор, просветите по поводу разницы, действительно интересно.
>

А я - тоже невиндовый программист. Я знаю только то что в виндах есть
две кодировки. В одной консольная программа получает параметры командной
строки, в ней же она передает данные в системные вызовы вроде open (то
что open в виндах библиотечная функция, а системный вызов CreateFile
существует в двух вариантах, один из которых использует эту кодировку ,
а второй UCS2LE пока опускаем), в другой происходит ввод-вывод на
консоль по умолчанию. 

Та кодировка, в которой работают системные вызовы и параметры называется
ANSI, втоая - OEM.

Вообще говоря, кодировка консоли может быть вообще третьей. Потому что
её можно переключать командой chcp. И есть отдельный системный вызов,
который позволяет её узнать - GetConsoleCP.

Для того чтобы портированная программа могла со всем этим хозяйством
аккуратно работать, требуется аккуратная поддержка всего этого как в
самой программе, так, желательно и в libc. В cygwin-овской libc с этим
все плохо. В mingw32-шной получше, но тоже не очень. Единственный grep
который в винде умеет нормально работать с русскими буквами, который я
видел, был из GnuWin32. И то - на консоль он писал в ANSI-кодировке.

Ну и еще почему-то никто пока не удосужился реализовать для виндов
эмуляцию iconv с использованием её родного MultibyteToWideChar, а вместо
этого таскают с собой толстенную libiconv.



Ну то есть перенастроить ка

> -- 
> To UNSUBSCRIBE, email to debian-russian-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>


Reply to: