Où Cygwin définit-il la locale ($LANG env var) ?
Au démarrage de l'application, la locale de l'application est définie par défaut sur la locale "C" ou "POSIX". Sous Cygwin 1.7.2 et plus, cette locale est définie par défaut sur le jeu de caractères ASCII au niveau de l'application.
...
Comment définir les paramètres linguistiques
Supposons que vous ayez défini l'une des variables d'environnement susmentionnées à une valeur locale POSIX valide, autre que "C" et "POSIX". Supposons également que vous vivez au Japon. Vous pourriez vouloir utiliser le code de langue "ja" et le territoire "JP", et donc définir, disons, LANG sur "ja_JP".
Vous n'avez pas défini de jeu de caractères, alors qu'est-ce que Cygwin va utiliser maintenant ? À partir de Cygwin 1.7.2, le jeu de caractères par défaut est déterminé par la page de code ANSI de Windows par défaut pour cette langue et ce territoire. Cygwin utilise un jeu de caractères qui est l'équivalent Unix typique de la page de code ANSI de Windows.
Vous ne voulez pas utiliser le jeu de caractères par défaut ? Dans ce cas, vous devez spécifier le jeu de caractères explicitement. Par exemple, supposons que vous êtes du Japon et que vous ne voulez pas utiliser le jeu de caractères japonais par défaut EUC-JP, mais le jeu de caractères par défaut de Windows SJIS.
Ce que vous pouvez faire, par exemple, est de définir la variable LANG dans le terminal Cygwin de mintty dans la section "Texte" de sa boîte de dialogue "Options".
Si vous démarrez votre session Cygwin par le biais d'un fichier batch ou d'un raccourci vers un fichier batch, vous pouvez aussi simplement définir la LANG à cet endroit :
@echo off
C:
chdir C:\cygwin\bin
set LANG=ja_JP.SJIS
bash --login -i
Source : Chapitre 2. Configuration de Cygwin - Internationalisation