Yanıtlar:
chcp size etkin kod sayfasını getirir.
systeminfo , diğerlerinin yanı sıra sistem yerel ayarını ve giriş yerel ayarını görüntüler.
" Not : Bu komut (systeminfo) Windows 2000'de kullanılamaz, ancak Windows XP veya Windows 2003 bilgisayarında bu komutu çalıştırarak Windows 2000 bilgisayarını sorgulayabilir ve uzak bilgisayarı Windows 2000 bilgisayarına ayarlayabilirsiniz. komutunun uzak makinede zaten ayrıcalık var (örneğin, Etki Alanı Yöneticileri), / u ve / p kullanmak zorunda değilsiniz. "
Gönderen burada .
O Not verilen bir sistem vardır iki ilgi aktif kod sayfalarını eski ayar adlı belirlediği şekilde, Unicode olmayan programlar için dilin eskiden olarak bilinen sistem yerel (arka plan bilgisi için alt bölümüne bakınız):
Not: İki kod sayfası daha vardır , ancak bunlar artık nadiren kullanılmaktadır ve bu nedenle burada tartışılmamaktadır: EBCDIC kodu ve (OS X öncesi) Mac kodu sayfası - WinAPI belgelerine bakın .
Etkin OEM kod sayfası en kolay yolu ile elde edilir chcp
gösterildiği gibi, Unutulan noktalı virgül en yararlı cevap açıkça birlikte oturumda değiştirilmedi varsayarak - chcp <codePageNum>
.
Etkin ANSI kod sayfasını belirlemek o kadar basit değildir, ancak PowerShell de sistem yerel ayarının adını ve dilini belirlemede yardımcı olabilir :
In Windows'un 8+ / Windows Server 2012+ Kullanım: Get-WinSystemLocale
cmdlet:
Get-WinSystemLocale | Select-Object Name, DisplayName,
@{ n='OEMCP'; e={ $_.TextInfo.OemCodePage } },
@{ n='ACP'; e={ $_.TextInfo.AnsiCodePage } }
Not: kullanımına cazip olabilir [cultureinfo]::CurrentCulture.TextInfo.ANSICodePage
, örneğin, ama bu yok değil mutlaka yansıtmak sistem genelinde aktif ANSI kod sayfası; bunun yerine, mevcut kullanıcının yerel ayarıyla (kültürü) ilişkili, farklı olabilecek ANSI kod sayfasıdır .
ABD-İngiliz sisteminde yukarıda belirtilenler:
Name DisplayName OEMCP ACP
---- ----------- ----- ---
en-US English (United States) 437 1252
OEMCP
OEM kod sayfası, ACP
ANSI kod sayfasıdır.
Bir kayıt tabanlı yöntem ayrıca eski sistemler üzerinde çalışır Windows XP için aşağı :
# Get the code pages:
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Nls\CodePage |
Select-Object OEMCP, ACP
ABD-İngiliz sisteminde yukarıda belirtilenler:
OEMCP ACP
----- ---
437 1252
Ayrıca sistem yerel ayarının [kolay] adını ve LCID'sini almak istiyorsanız (LCID'lerin kullanımdan kaldırıldığını unutmayın):
[Globalization.CultureInfo]::GetCultureInfo([int] ('0x' + (
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Nls\Language' Default
).Default)
)
ABD-İngiliz sisteminde yukarıda belirtilenler:
LCID Name DisplayName
---- ---- -----------
1033 en-US English (United States)
Arka plan bilgileri :
Sistem yerel ayarı , Unicode olmayan programlar için artık daha açıklayıcı olarak adlandırılan dilin (bkz. NLS terminolojisine ) eski addır ve adların önerdiği gibi:
Bu ayar yalnızca eski programlar (Unicode'u desteklemeyen programlar) için geçerlidir.
Bu uygular sistem genelinde bakılmaksızın belirli bir bölgesinin, kullanıcının yerel ayarlarına ve idari ayrıcalıkları değiştirmek için gereklidir.
Öyle ise nota için önemlidir bir miras ayarı , çünkü kod sayfaları artık Unicode kullanan programlar için geçerli , Windows API Unicode versiyonlarını dahili ve arayın.
Özellikle, bu belirler aktif kod sayfaları yani, karakter kodlayan varsayılan olarak kullanılır :
ANSI kod sayfası Unicode olmayan programların arasında, özellikle ANSI sürümü, Windows API Unicode olmayan (ANSI) sürümleri çağırdığınızda kullanmak TextOut
için ve özellikle Unicode gelen dizeleri tercüme için fonksiyonu programın dizeleri render nasıl belirler GUI .
tarafından yansıtılan konsol pencerelerinde varsayılan olarak etkin hale getirmek için OEM kod sayfası .chcp
65001
Unicode'un UTF-8 kodlamasını temsil eden sözde kod sayfasının kullanılması bir çözümdür, ancak eski komut satırı programlarının verileri yanlış yorumlamasına ve hatta başarısız olmasına neden olabilir - ayrıntılar için bu StackOverflow yanıtına bakın.850
çalıştırın chcp 850
içinde cmd.exe
ve $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [text.encoding]::GetEncoding(850)
PowerShell.Eski terimde kullanılan yerel ayar kelimesine ve mevcut terimdeki kelime diline rağmen:
Sadece ayarı tarafından kontrol edilen yönleri aktif kod sayfalarının seti ve varsayılan bitmap font , değil de (kullanıcı düzeyinde yerel ayarlarına tarafından kontrol edilir) bir yerel diğer unsurları.
Belirli bir kod sayfası genellikle birçok yerel ayar tarafından paylaşılır ve birden çok dili kapsar ; örneğin, yaygın olarak kullanılan 1252
kod sayfası , İngilizce de dahil olmak üzere birçok Batı Avrupa dili tarafından kullanılmaktadır.
Denetim Masası üzerinden ayarını değiştirmek ne zaman Ancak, ayarı alabilirim yoluyla belirli bir yerele.
Tüm Windows kod sayfalarının listesi için bkz. Https://docs.microsoft.com/en-us/windows/desktop/Intl/code-page-identifiers
GetACP()
işlevi - technet.microsoft.com/tr-tr/dd318070 - bu ilginç bir bağlantıdır, açıklama bölümü açıkça bu işlevin dönüş değerinin kullanıcının seçilen varsayılan giriş dilini ve GUI dilini temsil etmediğini ancak tamamen farklı bir şey olduğunu
Etkin kod sayfasını döndüren Windows API GetConsoleOutputCP () şeklindedir .
chcp
chcp
size aktif alacak OEM kod sayfası. Mklement yanıtında belirtildiği gibi, Windows tarafından kullanılan ANSI kod sayfası her zaman başka bir etkin kod sayfası vardır. Daha fazla bilgi için mklement'in cevabına bakınız .