Saat ini saya sedang menjalankan Windows 7 x64 dan biasanya saya ingin semua alat konsol bekerja dengan UTF-8 daripada dengan halaman kode standar 850.
Menjalankan chcp 65001
perintah prompt sebelum menggunakan alat apa pun membantu tetapi apakah ada cara untuk mengaturnya sebagai halaman kode default?
Memperbarui:
Mengubah HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP
nilai yang 65001
muncul untuk membuat sistem tidak dapat boot dalam kasus saya.
Usulan perubahan HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun
untuk @chcp 65001>nul
dilayani dengan baik untuk tujuan saya. (terima kasih kepada Ole_Brun )
A
versi fungsi Windows rusak. Semua kode perlu porting untuk menggunakanW
versi.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP
digunakan sebagai cadangan untuk lingkungan non-unicode (non-utf), jelas Anda mencoba memaksanya ke 'unicode', karena Anda melihatnya kontroversial menurut definisi. Windows hang mungkin karena beberapa hal sistem pada boot tergantung pada charset non-unicode untuk bekerja.Jawaban:
Untuk mengubah codepage hanya untuk konsol, lakukan hal berikut:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
chcp 65001
sumber
@chcp 65001>nul
, sedangkan dalam jawaban yang diterima ini, ituchcp 65001
. Apa perbedaan antara keduanya?chcp 65001
akan menyebabkan setiap command prompt yang dibuka untuk mencetak 'Halaman kode aktif: 65001' sementara@chcp 65001>nul
akan mencegah output apa pun.Autorun
tidak ada untuk saya di bawah Windows 8.1.Autorun
tidak ada, Anda dapat menambahkan Nilai String Baru dengan isi@chcp 65001>nul
Secara pribadi, saya tidak suka mengubah registri. Ini bisa menyebabkan banyak masalah. Saya membuat file batch:
Saya simpan di
C:\Windows\System32
sebagai switch.bat.Saya membuat tautan untuk cmd.exe di Desktop.
Di properti pintasan cmd, ubah tujuan menjadi:
C:\Windows\System32\cmd.exe /k switch
Voilá, ketika saya harus mengetikkan UTF-8, saya menggunakan tautan ini.
sumber
Active code page: 65001
ke stdout. Jadi jika Anda melakukan sesuatu seperti ituCHCP 65001 && mycommand.exe
maka Anda akan mendapatkan codepage dicetak pada awalnya. Anda perluCHCP 65001 >nul && mycommand.exe
File reg:
Prompt Perintah:
PowerShell:
-Type DWord
diasumsikan dengan PowerShell 3+ni -> New-Item
sp -> Set-ItemProperty
-ea 0 -> -ErrorAction Ignore
Cygwin:
/ -> \
HKCU -> HKEY_CURRENT_USER
user -> HKEY_CURRENT_USER
sumber
chcp 65001
dalam file perintah autorun. Lihat stackoverflow.com/a/17405182/315083Perintah untuk mengubah codepage adalah
chcp <codepage>
. Contoh:chcp 1252
. Anda harus mengetiknya di jendela Powershell. Untuk menghindari kesulitan mengetik setiap kali (jika Anda selalu harus mengubah codepage), Anda dapat menambahkannya ke baris perintah program. Untuk melakukannya, ikuti langkah-langkah ini:-NoExit -Command "chcp 1252"
Berbahagialah. Jangan repot-repot dengan Windows Registry kecuali Anda tidak memiliki pilihan lain.
sumber
-NoExit -Command "chcp 1252 > null"
juga menghilangkan pesan tentang halaman kode yang dipilih di awal.Ini dapat dilakukan dengan membuat profil PowerShell dan menambahkan perintah "chcp 65001> $ null" ke dalamnya:
Ini tidak memerlukan pengeditan registri dan, tidak seperti pengeditan cara pintas, akan berfungsi jika PowerShell dimulai di folder tertentu menggunakan menu konteks Windows Explorer.
sumber
Pada versi 1809 build Windows 10, saya telah berhasil menyelesaikan ini secara permanen dengan masuk ke sistem
Language settings
, memilihAdministrative language settings
, mengklik,Change system locale...
dan menandaiBeta: Use Unicode UTF-8 for worldwide language support
kotak lalu restart komputer saya.Dengan cara ini ini berlaku untuk semua aplikasi, bahkan yang tidak saya mulai dari command prompt!
(Yang penting bagi saya, karena saya mencoba mengedit kode Agda dari Atom.)
sumber