chcp vous obtiendra la page de codes active.
systeminfo affichera les paramètres régionaux du système et les paramètres régionaux d'entrée, entre autres.
" Remarque : Cette commande (systeminfo) n'est pas disponible dans Windows 2000 mais vous pouvez toujours interroger un ordinateur Windows 2000 en exécutant cette commande sur un ordinateur Windows XP ou Windows 2003 et définir l'ordinateur distant sur un ordinateur Windows 2000. Si la connexion utilisateur actuelle qui l'exécute la commande a déjà des privilèges sur la machine distante (par exemple, les administrateurs de domaine), vous n'avez pas besoin d'utiliser / u et / p. "
D' ici .
Point-virgule oublié
la source
chcp
vous obtiendrez la page de codes OEM active . Comme l'indique mklement dans sa réponse, il existe toujours une autre page de codes active utilisée par Windows, la page de codes ANSI. Pour plus d'informations, voir la réponse de mklement .Notez qu'un système donné a deux pages de codes actives d'intérêt , comme déterminé par le paramètre hérité nommé langue pour les programmes non Unicode , anciennement appelé paramètres régionaux du système (voir la section inférieure pour des informations générales):
Remarque: Il y a deux autres pages de code, mais elles sont rarement utilisées et ne sont donc pas abordées ici: le code EBCDIC et la page de code Mac (pré-OS X) Mac - voir la documentation WinAPI .
La page de codes OEM active est plus facilement obtenue via
chcp
, comme indiqué dans la réponse utile de Forgotten Semicolon - en supposant qu'elle n'a pas été explicitement modifiée dans la session avecchcp <codePageNum>
.La détermination de la page de codes ANSI active n'est pas aussi simple, mais PowerShell peut vous aider, également à déterminer le nom et la langue des paramètres régionaux du système:
Sous Windows 8+ / Windows Server 2012+ : utilisez l'
Get-WinSystemLocale
applet de commande:Remarque: Il peut être tentant d'utiliser
[cultureinfo]::CurrentCulture.TextInfo.ANSICodePage
, par exemple, mais cela ne reflète pas nécessairement la page de codes ANSI active à l' échelle du système ; il s'agit plutôt de la page de codes ANSI associée aux paramètres régionaux (culture) de l' utilisateur actuel , qui peuvent être différents.Sur un système US-anglais, les résultats ci-dessus donnent:
OEMCP
est la page de codes OEM,ACP
la page de codes ANSI.Une méthode basée sur le registre qui fonctionne également sur les anciens systèmes jusqu'à Windows XP :
Sur un système US-anglais, les résultats ci-dessus donnent:
Si vous souhaitez également obtenir le nom et le LCID des paramètres régionaux du système (notez cependant que les LCID sont obsolètes):
Sur un système US-anglais, les résultats ci-dessus donnent:
Informations générales :
Les paramètres régionaux du système sont le nom hérité de ce qui est maintenant appelé de manière plus descriptive la langue pour les programmes non Unicode (voir la terminologie NLS ) et, comme les noms le suggèrent:
Le paramètre s'applique uniquement aux programmes hérités (programmes qui ne prennent pas en charge Unicode).
Il s'applique à l'ensemble du système , quels que soient les paramètres régionaux d'un utilisateur donné , et des privilèges administratifs sont nécessaires pour le modifier.
Il est important de noter qu'il s'agit d' un paramètre hérité , car les pages de codes ne s'appliquent plus aux programmes qui utilisent Unicode en interne et appellent les versions Unicode de l'API Windows.
Il détermine notamment les pages de codes actives , c'est-à-dire l' encodage des caractères utilisé par défaut :
la page de codes ANSI à utiliser lorsque des programmes non Unicode appellent les versions non Unicode (ANSI) de l'API Windows, notamment la version ANSI de la
TextOut
fonction de traduction des chaînes vers et depuis Unicode, qui détermine notamment la façon dont les chaînes du programme s'affichent dans le GUI .la page de codes OEM à activer par défaut dans les fenêtres de la console , comme indiqué par
chcp
.65001
, qui représente le codage UTF-8 d'Unicode, est une solution, mais qui peut entraîner des programmes de ligne de commande hérités à mal interpréter les données et même à échouer - voir cette réponse StackOverflow pour plus de détails.850
, exécuterchcp 850
danscmd.exe
et$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [text.encoding]::GetEncoding(850)
dans PowerShell.Malgré le mot locale utilisé dans le terme hérité et le mot langue dans le terme actuel:
Les seuls aspects contrôlés par le paramètre sont l' ensemble des pages de codes actives et les polices bitmap par défaut , pas également les autres éléments des paramètres régionaux (qui sont contrôlés par les paramètres régionaux au niveau de l'utilisateur).
Une page de code donnée est généralement partagée par de nombreux paramètres régionaux et couvre plusieurs langues; Par exemple, la page de codes largement utilisée
1252
est utilisée par de nombreuses langues d'Europe occidentale, y compris l'anglais.Cependant, lorsque vous modifiez le paramètre via le Panneau de configuration, vous choisissez le paramètre au moyen d' un paramètre régional spécifique.
Pour une liste de toutes les pages de codes Windows, voir https://docs.microsoft.com/en-us/windows/desktop/Intl/code-page-identifiers
la source
GetACP()
fonction - technet.microsoft.com/en-us/dd318070 - qui est un lien intéressant, la section de remarque indique carrément que la valeur de retour de cette fonction ne représente PAS la langue d'entrée et la langue de l'interface utilisateur par défaut sélectionnées par l'utilisateur, mais quelque chose de complètement différent ...Les paramètres régionaux sont également visibles dans msinfo32.
la source
L'API Windows qui renvoie la page de codes active est GetConsoleOutputCP () .
la source
chcp
commande de la console )