ฉันต้องการตั้งค่าอย่างไม่สม่ำเสมอใน DOS เพจรหัส
chcp 1252
ฉันจะเก็บผลลัพธ์ของคำสั่งนั้นได้อย่างไร
ฉันต้องการตั้งค่าอย่างไม่สม่ำเสมอใน DOS เพจรหัส
chcp 1252
ฉันจะเก็บผลลัพธ์ของคำสั่งนั้นได้อย่างไร
คำตอบ:
เปิดตัวแก้ไขรีจิสทรี ( regedit) และไปที่คีย์ต่อไปนี้:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
แก้ไขOEMCPคุ้มค่าทางด้านขวาและเปลี่ยนจากค่าเริ่มต้น ( 861 ?) เพื่อ1252
ตอนนี้ให้เปิดพร้อมท์คำสั่งใหม่แล้วพิมพ์chcpเพื่อดูเพจรหัสปัจจุบัน (อาจเป็นไปได้ว่าอาจจะไม่ใช้จนกว่าคุณจะรีบูตเครื่อง)
อีกวิธีที่คุณสามารถทำได้คือเพิ่มchcpคำสั่งลงในAutorunคีย์ (คุณสามารถตั้งค่าสำหรับผู้ใช้เฉพาะหรือทั้งระบบ):
REGEDIT4
; Auto–code-page.reg
; Have chcp automatically run whenever a command-prompt is opened
;
;For current user
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="chcp 1252"
;For all users
;[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor]
;"Autorun"="chcp 1252"
เปิดแผงควบคุม เลือกนาฬิกาภาษาและภูมิภาค :
จากนั้นเปลี่ยนคีย์บอร์ดหรือวิธีป้อนข้อมูลอื่น ๆ :
สลับไปที่แท็บการจัดการ :
คลิกเปลี่ยนภาษาของระบบภายใต้ภาษาสำหรับโปรแกรมที่ไม่ใช่ Unicodeและเลือกภาษาที่ต้องการ
แต่ใช่มันเปลี่ยนแปลง:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\ACP
และบางทีสิ่งอื่น ๆ
การพูดถึงสิ่งนี้อาจเป็นสาเหตุOEMCPที่65001ทำให้ระบบไม่สามารถบูตได้ ไม่มีตัวเลือกดังกล่าวในแผงควบคุม
( ภาพนี้ถ่ายจากที่นี่เนื่องจากฉันไม่มี Windows ที่มีชุดภาษาอังกฤษอยู่ในมือเพื่อสร้างภาพหน้าจอ )
การเปลี่ยนค่าHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePageทำให้ระบบของฉันไม่สามารถบูตได้
การเพิ่มค่าสตริงใน
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processorจาก
"Autorun"="chcp 1252"
แก้ไขปัญหา
ฉันเป็นผู้ใช้ Windows 7 x64 ที่แปลเป็นภาษารัสเซียดังนั้นฉันจึงจำเป็นต้องตั้งรหัสหน้า 1251 (Windows Cyrillic) เป็นค่าเริ่มต้นสำหรับ CMD วิธีการแก้ปัญหาโดย Synetechเช่นเดียวกับวิธีแก้ปัญหาของ Steven Pennyทำงานได้ แต่ CMD หลังเท่านั้นจะได้รับผลกระทบและตัวอย่างเช่นpingโปรแกรมอรรถประโยชน์จะทำงานไม่ถูกต้องดังนั้นฉันจึงตัดสินใจใช้ทั้งสองอย่าง ในเวลาเดียวกันการเปลี่ยนรหัสเพจเริ่มต้นไม่เพียงพอ: แบบอักษรเริ่มต้นของหน้าต่าง CMD ไม่รองรับการเข้ารหัสนี้และฉันถูกบังคับให้ตั้งค่าLucida Consoleแบบอักษรเป็นค่าเริ่มต้น ไฟล์. REG ต่อไปนี้ทำงานได้ทั้งหมด (เปลี่ยนเพจเพจเริ่มต้นเป็น 1251 และตั้งค่าLucida Consoleเป็นฟอนต์เริ่มต้นสำหรับ CMD ด้วยคุณสมบัติที่เหมาะสม):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"OEMCP"="1251"
[-HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
[HKEY_CURRENT_USER\Console]
; Code Page 1251
"CodePage"=dword:000004e3
; Default font for CMD window is "Lucida Console"
"FaceName"="Lucida Console"
"FontFamily"=dword:00000036
"FontSize"=dword:00140000
"FontWeight"=dword:00000190
"ScreenBufferSize"=dword:012C0064
"WindowSize"=dword:00190064
หลังจากนำเข้าไฟล์. REG นี้ไปยังรีจิสตรี (โดยดับเบิลคลิกที่ไฟล์และเลือก "ใช่") คุณต้องรีบูตระบบเพื่อให้การเปลี่ยนแปลงมีผล