सवाल विंडोज कंसोल का डिफ़ॉल्ट कोड पेज यूटीएफ -8 में बदलें


वर्तमान में मैं विंडोज 7 एक्स 64 चला रहा हूं और आमतौर पर मैं सभी कंसोल टूल्स को डिफ़ॉल्ट कोड पेज 850 के बजाय यूटीएफ -8 के साथ काम करना चाहता हूं।

चल रहा है chcp 65001 किसी भी उपकरण के उपयोग से पहले कमांड प्रॉम्प्ट में मदद करता है लेकिन सेट करने का कोई तरीका डिफ़ॉल्ट कोड पृष्ठ के रूप में है?

अद्यतन करें:

बदलना HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP मूल्य 65001 सिस्टम को मेरे मामले में बूट करने में असमर्थ बनाने के लिए प्रतीत होता है।

प्रस्तावित परिवर्तन HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun सेवा मेरे @chcp 65001>nul मेरे उद्देश्य के लिए बस अच्छी तरह से सेवा की। (का शुक्र है Ole_Brun)


104
2018-04-12 10:42


मूल


ध्यान दें कि उद्देश्यपूर्ण समाधान विंडोज 'find.exe को तोड़ सकता है (जो एंड्रॉइड एसडीके बिल्ड के साथ समस्याएं पैदा करेगा): superuser.com/questions/176737/... - J Rao
एचएम, जब मैं chcp 65001 का उपयोग करता हूं तो मेरा कंसोल विंडोज क्रैश होता है जब मैं डीआईआर करता हूं, लेकिन यह / u ध्वज के साथ cmd.exe को शुरू करने में मदद करता है (एनबी: यह यूनिकोड का उपयोग करता है, यह chcp.com आउटपुट में दिखाई नहीं देता है) - eckes
यूटीएफ -8 कोड-पेज का उपयोग करना भी टूट जाता है more आदेश (यह भ्रामक त्रुटि संदेश देता है Not enough memory.) के साथ कमांड प्रॉम्प्ट खोलना /U स्विच मदद नहीं करता है। - Synetech
विंडोज कंसोल को बग के साथ झुकाया जाता है जब एन्कोडिंग 65001 जैसी असमर्थित बहु-बाइट कोड पेज पर सेट की जाती है। Win32 WriteFile / ReadFile API के आउटपुट गणनाओं का उपयोग करने वाले किसी भी सॉफ़्टवेयर को गलत परिणाम मिलेंगे और इसके परिणामस्वरूप एमएसवीसीआरटी की तरह सामानों का निर्माण होगा stdlib का कार्यान्वयन गैर-ASCII के साथ सामना करते समय उलझन / बार-बार आउटपुट का उत्पादन करेगा और इनपुट पर लटका होगा। जब तक एमएस इसे ठीक करने के लिए न हो जाए - और दशकों से ऐसा होने का कोई संकेत नहीं हुआ है - विश्व स्तर पर बदल रहे कंसोल कोड पृष्ठ 65001 तक है असाधारण रूप से बुरा विचार। - bobince
का कोई भी उपयोग A विंडोज फ़ंक्शंस के संस्करण टूटा हुआ है।  सभी कोड का उपयोग करने के लिए पोर्ट किया जाना चाहिए W संस्करणों। - Demi


जवाब:


केवल कंसोल के लिए कोडपेज बदलने के लिए, निम्न कार्य करें:

  1. प्रारंभ करें -> चलाएं -> regedit
  2. के लिए जाओ [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. मान को बदलें chcp 65001

80
2018-04-12 12:22



ध्यान रखें कि कोडपेज को बदलने से न केवल कंसोल को प्रभावित होगा। इसे केवल कंसोल पर लागू करने के लिए, आप डाल सकते हैं chcp 65001 में HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun। - Nils Magne Lunde
आश्चर्यजनक रूप से बदल रहा है OEMCP रजिस्ट्री सेटिंग ने मेरा सिस्टम बूट करने में असमर्थ बना दिया है इसलिए मुझे कार्यरत स्थिति में पुनर्स्थापित करने के लिए सिस्टम रिकवरी का उपयोग करना पड़ा। Autorun चाल है, हालांकि। - Regent
@ रेजेंट: यदि यह समाधान आपके सिस्टम को बूट करने योग्य बनाता है, तो आपने इसे स्वीकार किए जाने के रूप में क्यों चिह्नित किया? - Tim Pietzcker
@galacticninja बस डालने chcp 65001 प्रत्येक सक्रिय कमांड प्रॉम्प्ट को 'सक्रिय कोड पेज: 65001' प्रिंट करने के लिए कारण होगा @chcp 65001>nul किसी भी आउटपुट को रोक देगा। - Regent
Autorun विंडोज 8.1 के तहत मेरे लिए मौजूद नहीं है। - kleinfreund


मुझे सिस्टम को बदलना पसंद नहीं है। यह मेरे लिए बहुत सी समस्याएं पैदा करता है। मैंने बैच फ़ाइल बनाई:

@ECHO OFF
REM change CHCP to UTF-8
CHCP 65001
CLS

मैंने C: \ Windows \ System32 पर switch.bat के रूप में सहेजा।

मैंने डेस्कटॉप पर cmd.exe के लिए एक लिंक बनाया है।

Cmd के गुणों में, गंतव्य को बदल दिया: C:\Windows\System32\cmd.exe /k switch

Voilá, जब मुझे यूटीएफ -8 में टाइप करने की आवश्यकता है, तो मैं इस लिंक का उपयोग करता हूं।


33
2017-12-07 15:36



ध्यान दें कि यह प्रिंट करेगा Active code page: 65001 stdout करने के लिए। तो अगर आप कुछ ऐसा कर रहे हैं CHCP 65001 && mycommand.exe तो आपको शुरुआत में कोडपेज मुद्रित किया जाएगा। आपको CHCP 65001 >nul && mycommand.exe - frumbert


रेग फ़ाइल:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. मूल्य हेक्स में होना चाहिए
  2. शीर्ष पंक्ति को ठीक उसी तरह शामिल किया जाना चाहिए
  3. HKEY_CURRENT_USER को संक्षिप्त नहीं किया जा सकता है
  4. डवर्ड को छोड़ा नहीं जा सकता है

सही कमाण्ड:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. मूल्य dec या हेक्स में हो सकता है
  2. % SystemRoot% से बच जाना चाहिए
  3. REG_DWORD छोड़ा नहीं जा सकता है

शक्ति कोशिका:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. मूल्य dec या हेक्स में हो सकता है
  2. -Type DWord PowerShell 3+ के साथ माना जाता है
  3. इस्तेमाल कर सकते हैं ni -> New-Item
  4. इस्तेमाल कर सकते हैं sp -> Set-ItemProperty
  5. इस्तेमाल कर सकते हैं -ea 0 -> -ErrorAction Ignore

Cygwin:

regtool add '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe'
regtool set '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage' 65001
  1. मूल्य dec या हेक्स में हो सकता है
  2. इस्तेमाल कर सकते हैं / -> \
  3. इस्तेमाल कर सकते हैं HKCU -> HKEY_CURRENT_USER
  4. इस्तेमाल कर सकते हैं user -> HKEY_CURRENT_USER

26
2018-06-13 20:39





कोडपेज बदलने के लिए आदेश है chcp <codepage>। उदाहरण: chcp 1252। आपको इसे पावरहेल विंडो में टाइप करना चाहिए। इसे हर बार टाइप करने की परेशानी से बचने के लिए (यदि आपको हमेशा कोडपेज बदलना है), तो आप इसे प्रोग्राम की कमांड लाइन में जोड़ सकते हैं। ऐसा करने के लिए, इन चरणों का पालन करें:

  1. स्टार्ट मेनू पर पावरहेल आइकन राइट-क्लिक करें और "अधिक"> "फ़ाइल खोलें स्थान" चुनें।
  2. पावरहेल शॉर्टकट पर राइट-क्लिक करें और "गुण" चुनें।
  3. "लक्ष्य" कमांड लाइन के अंत में निम्न जोड़ें: -NoExit -Command "chcp 1252"

खुश रहो। विंडोज रजिस्ट्री के साथ झगड़ा न करें जब तक कि आपके पास कोई दूसरा विकल्प न हो।


4
2017-11-02 21:11



यह मेरे लिए पूरी तरह से काम किया। -NoExit -Command "chcp 1252 > null" शुरुआत में चयनित कोड पेज के बारे में संदेश भी छोड़ देता है। - CodeMonkey


यह PowerShell प्रोफ़ाइल बनाकर और "chcp 65001> $ null" कमांड को जोड़कर किया जा सकता है:

PS> Set-ExecutionPolicy RemoteSigned
PS> New-Item -Path $Profile -ItemType file -Force
PS> notepad $Profile

इसे रजिस्ट्री को संपादित करने की आवश्यकता नहीं है और, शॉर्टकट को संपादित करने के विपरीत, Windows Explorer Explorer मेनू का उपयोग कर किसी विशिष्ट फ़ोल्डर में PowerShell प्रारंभ होने पर काम करेगा।


1
2017-09-03 20:56



तो यह पूरी तरह से अलग है कि दूसरा जवाब जो उपयोग करने का सुझाव देता है chcp 65001? - Pimp Juice IT