5

Обратите внимание на следующий фрагмент:

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.

Как можно видеть, выходные данные искажены в этом французском выводе. Например, додзё должно быть дежа. Я использую и 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Ú.

РЕДАКТИРОВАТЬ 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é.

Что идеально.

3 ответа3

4

Попробуйте "PowerShell ISE", а не "PowerShell" - он понимает UTF-8 и другие наборы символов.


Обновить:

проблема

Вы видите Ú вместо é

Анализ

находится в кодовой точке 0xE9 в ISO 8859-1 Latin-1 (и нескольких похожих кодировках)
At находится в кодовой точке 0xE9 в кодовой странице 850

Поэтому ваше приложение излучает текст, используя кодировку Latin-1. Однако ваша консоль настроена на кодовую страницу 850.

Решение

Использование chcp для изменения кодировки консоли, в сочетании с соответствующим образом закодированным шрифтом, скорее всего решит проблему.


Я могу воспроизвести проблему и исправить ее, изменив свойства командной строки, чтобы изменить шрифт с "Растр" на "Консоль Lucida". Растровые шрифты имеют то, что Microsoft называет OEM-кодировкой.

до

после

3

Попробуйте изменить кодовую страницу с помощью команды chcp . Например:

C:\ chcp 1252

Я говорю 1252 потому что у этого парня, похоже, был успех в отображении французских символов.

Если это работает, есть еще один шаг, потому что он сбрасывается в каждом окне командной строки. Я не проверял это, но в соответствии с этим сайтом он изменит кодовую страницу для всех будущих окон командной строки.

Start->Run->regedit
Go to [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
And change the "OEMCP" value to "1252"

Команда chcp найдена на ComputerHope.com

0

Это не работает:

@echo off
start "" "C:\Users\dmb3419\Documents\dev\ééééééééé"

Это работает:

@echo off
chcp 1252
start "" "C:\Users\dmb3419\Documents\dev\ééééééééé"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .