logo
АСНИ

Интернационализация

До версии 1.7 Cygwin не имел поддержки Unicode и использовал только ANSI-варианты функций Win32; отсутствовала также и поддержка каких-либо кодировок, отличных от родных для Windows и OEM (так, в русскоязычной версии Windows Cygwin работала лишь с CP1251 и CP866, но не KOI8-RISO 8859-5,UTF-8 или какими-либо другими; тем не менее при работе в X Window System под Cygwin можно было использовать и другие кодировки, установив шрифты и настройки клавиатуры).

Начиная с версии 1.7 кодировкой по умолчанию является Unicode в форме UTF-8 и соответственно, по умолчанию используется локаль C.UTF-8. При вызове функций Win32 Cygwin осуществляет трансляцию строк в кодировку UTF-16, используемую в системах Windows. Начиная с версии 1.7.2 Cygwin также может извлекать некоторую информацию из реестра Windows в соответствии с установками Language и Territory в локали.

Другая проблема заключалась в том, что консоль Cygwin (подобно CMD.EXE) использовала OEM кодировку. Для обхода этого ограничения рекомендовалось запускать в Cygwin демоны rshd или sshd и использовать эмулятор терминала с полной поддержкой UTF-8, например PuTTY. Начиная с версии 1.7 консоль Cygwin также работает в кодировке UTF-8, что позволяет выводить текстовую информацию в UTF-8 напрямую. Также консоль осуществляет трансляцию вводимой с клавиатуры информации в UTF-8, в соответствии с используемой национальной раскладкой.