Apakah ada cara agar pengguna secara manual mencari Codepage saat ini dan lokal OS windows mereka? Apakah ada pengaturan registri yang menyimpan informasi itu?
Ini juga akan berguna jika teknik ini bekerja kembali ke Windows 2000.
sumber
Apakah ada cara agar pengguna secara manual mencari Codepage saat ini dan lokal OS windows mereka? Apakah ada pengaturan registri yang menyimpan informasi itu?
Ini juga akan berguna jika teknik ini bekerja kembali ke Windows 2000.
chcp akan memberi Anda halaman kode aktif.
systeminfo akan menampilkan lokal sistem dan input lokal, antara lain.
" Catatan : Perintah ini (systeminfo) tidak tersedia di Windows 2000 tetapi Anda masih dapat meminta komputer Windows 2000 dengan menjalankan perintah ini di komputer Windows XP atau Windows 2003 dan mengatur komputer jarak jauh ke komputer Windows 2000. Jika pengguna saat ini log masuk yang menjalankan ini perintah sudah memiliki hak istimewa pada mesin jarak jauh (misalnya, Administrator Domain), Anda tidak harus menggunakan / u dan / p. "
Dari sini .
chcp
akan mendapatkan halaman kode OEM aktif . Sebagai mklement menyatakan dalam jawabannya, selalu ada halaman kode aktif lain yang digunakan oleh Windows, halaman kode ANSI. Untuk informasi lebih lanjut lihat jawaban mklement .Perhatikan bahwa sistem yang diberikan memiliki dua halaman kode aktif yang menarik , sebagaimana ditentukan oleh pengaturan lawas bernama bahasa untuk program non-Unicode , yang sebelumnya dikenal sebagai sistem lokal (lihat bagian bawah untuk informasi latar belakang):
Catatan: Ada dua halaman kode lagi , tetapi mereka jarang digunakan lagi, dan karenanya tidak dibahas di sini: kode EBCDIC dan halaman kode Mac (pra-OS X) - lihat dokumentasi WinAPI .
The kode halaman OEM aktif paling mudah diperoleh melalui
chcp
, seperti yang ditunjukkan pada jawaban yang membantu Lupa Titik koma ini - dengan asumsi itu tidak secara eksplisit berubah di sesi denganchcp <codePageNum>
.Menentukan halaman kode ANSI aktif tidak sesederhana itu, tetapi PowerShell dapat membantu, juga dengan menentukan nama dan bahasa lokal sistem:
Di Windows 8+ / Windows Server 2012+ : Gunakan
Get-WinSystemLocale
cmdlet:Catatan: Mungkin tergoda untuk menggunakan
[cultureinfo]::CurrentCulture.TextInfo.ANSICodePage
, misalnya, tetapi ini tidak harus mencerminkan halaman kode ANSI aktif seluruh sistem ; alih-alih, ini adalah halaman kode ANSI yang terkait dengan lokal pengguna saat ini (budaya), yang mungkin berbeda.Pada sistem AS-Inggris, hasil di atas:
OEMCP
adalah halaman kode OEM,ACP
halaman kode ANSI.Sebuah metode berbasis registry- yang juga bekerja pada sistem yang lebih tua ke Windows XP :
Pada sistem AS-Inggris, hasil di atas:
Jika Anda juga ingin mendapatkan sistem lokal ini [ramah] nama dan LCID (meskipun diketahui bahwa LCIDs yang usang):
Pada sistem AS-Inggris, hasil di atas:
Informasi latar belakang :
Sistem lokal adalah nama lama untuk apa yang sekarang lebih deskriptif disebut bahasa untuk program non-Unicode (lihat terminologi NLS ), dan, seperti namanya:
The Pengaturan hanya berlaku untuk program warisan (program yang tidak mendukung Unicode).
Ini berlaku di seluruh sistem , terlepas dari pengaturan lokal pengguna tertentu , dan hak administratif diperlukan untuk mengubahnya.
Hal ini penting untuk dicatat bahwa adalah merupakan suatu warisan pengaturan , karena halaman kode tidak lagi berlaku untuk program yang menggunakan Unicode internal dan memanggil versi Unicode dari Windows API.
Khususnya, ini menentukan halaman kode aktif , yaitu, pengkodean karakter yang digunakan secara default :
yang halaman kode ANSI untuk digunakan saat program non-Unicode memanggil non-Unicode (ANSI) versi Windows API, terutama versi ANSI dari
TextOut
fungsi untuk menerjemahkan string ke dan dari Unicode, yang terutama menentukan bagaimana string program render di GUI .yang kode halaman OEM untuk membuat aktif secara default di jendela konsol , yang tercermin
chcp
.65001
, yang mewakili pengkodean UTF-8 Unicode, adalah solusi, tetapi itu dapat menyebabkan program baris perintah lama salah menafsirkan data dan bahkan gagal - lihat jawaban StackOverflow ini untuk detailnya.850
, jalankanchcp 850
dicmd.exe
, dan$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [text.encoding]::GetEncoding(850)
di PowerShell.Meskipun kata lokal digunakan dalam istilah lama dan kata bahasa dalam istilah saat ini:
Satu- satunya aspek yang dikendalikan oleh pengaturan adalah set halaman kode aktif dan font bitmap default , bukan juga elemen lokal lainnya (yang dikendalikan oleh pengaturan lokal tingkat pengguna).
Halaman kode yang diberikan biasanya dibagikan oleh banyak lokal dan mencakup beberapa bahasa; misalnya, halaman kode yang banyak digunakan
1252
digunakan oleh banyak bahasa Eropa Barat, termasuk bahasa Inggris.Namun, ketika Anda mengubah pengaturan melalui Control Panel, Anda memilih pengaturan dengan cara lokal tertentu.
Untuk daftar semua halaman kode Windows, lihat https://docs.microsoft.com/en-us/windows/desktop/Intl/code-page-identifiers
sumber
GetACP()
function - technet.microsoft.com/en-us/dd318070 - itu adalah tautan yang menarik, bagian komentar langsung mengatakan nilai pengembalian fungsi ini TIDAK mewakili bahasa input default yang dipilih pengguna dan bahasa GUI tetapi sesuatu yang sama sekali berbeda ...Lokal juga dapat dilihat di msinfo32.
sumber
Windows API yang mengembalikan halaman kode aktif adalah GetConsoleOutputCP () .
sumber
chcp
perintah konsol )