如何配置命令提示符以正确显示法语?

mar*_*ark 5 command-line localization

观察以下片段:

PS Z:\dev\windows\nc\NC.ProtoBuf> hg help qimport
hg qimport [-e] [-n NOM] [-f] [-g] [-P] [-r REV]... FICHIER...

importe un patch

    Le patch est insÚrÚ dans la sÚrie Ó la suite du dernier patch appliquÚ. Si
    aucun patch n'a encore ÚtÚ appliquÚ, le patch sera ajoutÚ en tÛte de
    sÚrie.

    Le patch portera le mÛme nom que le fichier dont il provient, Ó moins
    qu'un autre nom ne soit spÚcifiÚ Ó l'aide de -n/--name.

    Vous pouvez enregistrer un patch dÚjÓ prÚsent dans le rÚpertoire de patchs
    Ó l'aide de l'option -e/--existing.
Run Code Online (Sandbox Code Playgroud)

如您所见,此法语输出中的输出已损坏。例如,dÚjÓ应该是déjà。我同时使用 cmd.exe 和 PowerShell - 结果是一样的。

有没有办法配置命令提示符以正确呈现法语口音?

编辑

根据https://superuser.com/users/52492/redgrittybrick的建议,我尝试了 PowerShell ISE - 仍然没有爱:

_____________________________________________________________________________________
PS Z:\> hg help qimport
hg qimport [-e] [-n NOM] [-f] [-g] [-P] [-r REV]... FICHIER...

importe un patch

    Le patch est insÚrÚ dans la sÚrie Ó la suite du dernier patch appliquÚ.
    Si aucun patch n'a encore ÚtÚ appliquÚ, le patch sera ajoutÚ en tÛte de
    sÚrie.

    Le patch portera le mÛme nom que le fichier dont il provient, Ó moins
    qu'un autre nom ne soit spÚcifiÚ Ó l'aide de -n/--name.

    Vous pouvez enregistrer un patch dÚjÓ prÚsent dans le rÚpertoire de
    patchs Ó l'aide de l'option -e/--existing.

    Avec -f/--force, un patch dÚjÓ prÚsent du mÛme nom sera ÚcrasÚ.
Run Code Online (Sandbox Code Playgroud)

编辑 2

我很确定 hg 本身没有问题,因为当我将hg help qimport的输出重定向到一个文件并在编辑器中打开后者时,我看到:

hg qimport [-e] [-n NOM] [-f] [-g] [-P] [-r REV]... FICHIER...

importe un patch

    Le patch est inséré dans la série à la suite du dernier patch appliqué.
    Si aucun patch n'a encore été appliqué, le patch sera ajouté en tête de
    série.

    Le patch portera le même nom que le fichier dont il provient, à moins
    qu'un autre nom ne soit spécifié à l'aide de -n/--name.

    Vous pouvez enregistrer un patch déjà présent dans le répertoire de
    patchs à l'aide de l'option -e/--existing.

    Avec -f/--force, un patch déjà présent du même nom sera écrasé.
Run Code Online (Sandbox Code Playgroud)

这是完美的。

Red*_*ick 4

尝试“PowerShell ISE”而不是“PowerShell”——它可以理解 UTF-8 和其他字符集。

\n\n

在此输入图像描述

\n\n
\n\n

更新:

\n\n

问题

\n\n

您看到的是 \xc3\x9a 而不是 \xc3\xa9

\n\n

分析

\n\n

\xc3\xa9 位于ISO 8859-1 Latin-1(和几种类似编码)中的代码点 0xE9
\n\xc3\x9a 位于代码页 850中的代码点 0xE9

\n\n

因此,您的应用程序使用 Latin-1 编码发出文本。但是,您的控制台设置为代码页 850。

\n\n

解决方案

\n\n

使用chcp更改控制台编码与适当编码的字体相结合,很可能会解决问题。

\n\n
\n\n

我可以重现该问题并通过更改命令提示符属性将字体从“Raster”更改为“Lucida Console”来修复它。光栅字体具有 Microsoft 所说的 OEM 编码。

\n\n

前

\n\n

后

\n

  • 当然,将字体更改为 Lucida 并将代码页更改为 1252 即可解决问题。非常感谢。 (2认同)