Obecnie korzystam z systemu Windows 7 x64 i zwykle chcę, aby wszystkie narzędzia konsoli działały z UTF-8, a nie z domyślną stroną kodową 850.
Uruchamianie chcp 65001
w wierszu polecenia przed użyciem jakichkolwiek narzędzi pomaga, ale czy można ustawić domyślną stronę kodową?
Aktualizacja:
Zmiana wyświetlanej HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP
wartości, aby 65001
system nie mógł się uruchomić w moim przypadku.
Proponowana zmiana na HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun
dobrze @chcp 65001>nul
służyła do moich celów. (dzięki Ole_Brun )
A
wersji funkcji Windows jest zepsute. Cały kod musi być przeniesiony, aby móc korzystać zW
wersji.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP
jest używany jako rezerwowy w środowiskach innych niż Unicode (non-utf), oczywiście próbujesz zmusić go do „Unicode”, ponieważ z definicji jest to kontrowersyjne. Windows zawiesza się prawdopodobnie dlatego, że niektóre elementy systemu podczas uruchamiania zależą od zestawu znaków innego niż Unicode.Odpowiedzi:
Aby zmienić stronę kodową tylko dla konsoli, wykonaj następujące czynności:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
chcp 65001
źródło
@chcp 65001>nul
w tej zaakceptowanej odpowiedzi tak jestchcp 65001
. Jakie są różnice między nimi?chcp 65001
spowoduje, że każdy otwarty wiersz polecenia wydrukuje „Aktywny kod strony: 65001”, a jednocześnie@chcp 65001>nul
uniemożliwi wyjście.Autorun
nie jest dla mnie obecny w systemie Windows 8.1.Autorun
nie jest obecny, możesz dodać nową wartość ciągu z zawartością@chcp 65001>nul
Osobiście nie lubię zmieniać rejestru. Może to powodować wiele problemów. Utworzyłem plik wsadowy:
I zapisywane na
C:\Windows\System32
jak switch.bat.Utworzyłem link do cmd.exe na pulpicie.
We właściwościach skrótu cmd zmieniono miejsce docelowe na:
C:\Windows\System32\cmd.exe /k switch
Voilá, kiedy muszę wpisać UTF-8, używam tego linku.
źródło
Active code page: 65001
na standardowe wyjście. Więc jeśli robisz coś takiegoCHCP 65001 && mycommand.exe
, na początku wydrukujesz stronę kodową. MusiszCHCP 65001 >nul && mycommand.exe
Plik reg:
Wiersz polecenia:
PowerShell:
-Type DWord
zakłada się z PowerShell 3+ni -> New-Item
sp -> Set-ItemProperty
-ea 0 -> -ErrorAction Ignore
Cygwin:
/ -> \
HKCU -> HKEY_CURRENT_USER
user -> HKEY_CURRENT_USER
źródło
chcp 65001
w pliku polecenia autorun. Zobacz stackoverflow.com/a/17405182/315083Poleceniem zmiany strony kodowej jest
chcp <codepage>
. Przykład:chcp 1252
. Powinieneś wpisać go w oknie PowerShell. Aby uniknąć kłopotów z wpisywaniem go za każdym razem (jeśli zawsze musisz zmienić stronę kodową), możesz dołączyć ją do wiersza poleceń programu. Aby to zrobić, wykonaj następujące kroki:-NoExit -Command "chcp 1252"
Bądź szczęśliwy. Nie przejmuj się rejestrem Windows, chyba że nie masz innej opcji.
źródło
-NoExit -Command "chcp 1252 > null"
na początku pomija również komunikat o wybranej stronie kodowej.Można to zrobić, tworząc profil PowerShell i dodając do niego polecenie „chcp 65001> $ null”:
Nie wymaga to edycji rejestru i, w przeciwieństwie do edycji skrótu, będzie działać, jeśli program PowerShell zostanie uruchomiony w określonym folderze za pomocą menu kontekstowego Eksploratora Windows.
źródło
W wersji systemu Windows 10 z 1809 roku udało mi się na stałe rozwiązać ten problem, przechodząc do systemu
Language settings
, wybierającAdministrative language settings
, klikającChange system locale...
i zaznaczającBeta: Use Unicode UTF-8 for worldwide language support
pole, a następnie ponownie uruchamiając komputer.W ten sposób dotyczy wszystkich aplikacji, nawet tych, których nie uruchamiam z wiersza poleceń!
(Co było dla mnie konieczne, ponieważ próbowałem edytować kod Agda z Atomu.)
źródło