উইন্ডোজ কনসোলের ডিফল্ট কোড পৃষ্ঠাটি ইউটিএফ -8 এ পরিবর্তন করুন


123

বর্তমানে আমি উইন্ডোজ 7 x64 চালাচ্ছি এবং সাধারণত আমি সমস্ত কনসোল সরঞ্জামগুলি ডিফল্ট কোড পৃষ্ঠা 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আমার উদ্দেশ্য মাত্র ভাল দায়িত্ব পালন করেন। ( ওলে_ ব্রুনকে ধন্যবাদ )


উল্লেখ্য উদ্দেশ্য সমাধান উইন্ডোজ 'find.exe (যা Android এর SDK এর বিল্ড সমস্যার সৃষ্টি হবে) ভঙ্গ পারে: superuser.com/questions/176737/...
জে রাও

এইচএম, আমি যখন chcp 65001 ব্যবহার করি তখন আমি আমার কনসোল উইন্ডোজ ক্র্যাশ করি যখন আমি দির করি, তবে এটি / u ফ্ল্যাগের সাহায্যে cmd.exe সবে শুরু করতে সহায়তা করে (এনবি: এটি ইউনিকোড ব্যবহার করে এটি chcp.com আউটপুটে প্রতিফলিত হয় না)
eckes

10
উইন্ডোজ কনসোলটি বাগ সহ ছাঁটাই হয়ে থাকে যখন 65001 এর মতো এনকোডিংটি কোনও অসমর্থিত মাল্টি-বাইট কোড পৃষ্ঠাতে সেট করা হয় Win উইন 32 রাইটফিল / রিডফিল এপিআইয়ের আউটপুট গণনা করা কোনও সফ্টওয়্যার ভুল ফলাফল পাবে এবং ফলস্বরূপ স্টাফটি এমএসভিসিআরটি'র মতো তৈরি হবে স্টাডলিবের প্রয়োগ বাস্তবায়িতভাবে ম্যাংলেড / পুনরাবৃত্তি আউটপুট উত্পাদন করে এবং ইন-এএসসিআইআই-এর সাথে মুখোমুখি হলে ইনপুটটিতে স্তব্ধ হয়ে যায়। এমএস যতক্ষণ না এটি ঠিক করে ফেলতে পারে - এবং দশকের দশক হয়ে গেছে যে ঘটনার কোনও চিহ্ন নেই - বিশ্বব্যাপী কনসোল কোড পৃষ্ঠাটি 65001 এ পরিবর্তন করা একটি ব্যতিক্রমী ধারণা
ববিনস

2
Aউইন্ডোজ ফাংশনগুলির সংস্করণগুলির কোনও ব্যবহার ভেঙে গেছে। Wসংস্করণগুলি ব্যবহার করার জন্য সমস্ত কোড পোর্ট করা দরকার ।
ডেমি

1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCPনন-ইউনিকোড (নন-ইউটিএফ) পরিবেশের ফ্যালব্যাক হিসাবে ব্যবহৃত হয়, আপনি অবশ্যই এটি একটি 'ইউনিকোড'-এ জোর করার চেষ্টা করেছেন, কারণ আপনি দেখতে পাচ্ছেন যে এটি সংজ্ঞা অনুসারে বিতর্কিত। উইন্ডোজ সম্ভবত হ্যাং হয়ে যায় কারণ বুটের উপর কিছু সিস্টেম স্টাফ কাজ করার জন্য অ-ইউনিকোড চরসেটের উপর নির্ভর করে।
ভিনিমাস

উত্তর:


99

শুধুমাত্র কনসোলের কোডেজ পরিবর্তন করতে, নিম্নলিখিতটি করুন:

  1. শুরু করুন -> চালান -> রিজেডিট
  2. যাও [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. মানটি পরিবর্তন করুন chcp 65001

1
@ রিজেন্ট প্রশ্নে, আপনি যে রেজিস্ট্রি মানটি উল্লেখ করেছেন যে এটি আপনার পক্ষে কাজ করেছে সেগুলি @chcp 65001>nulএই স্বীকৃত উত্তরে রয়েছে chcp 65001। দুই মধ্যে পার্থক্য কি কি?
galacticninja

7
@ গ্যালাকটিকনিঞ্জা সহজভাবে রাখার chcp 65001ফলে প্রতিটি খোলা কমান্ড প্রম্পটকে 'অ্যাক্টিভ কোড পৃষ্ঠা: 65001' মুদ্রণ করতে @chcp 65001>nulহবে তবে যে কোনও আউটপুট আটকাতে হবে।
রিজেন্ট

7
Autorunউইন্ডোজ 8.1 এর অধীনে আমার জন্য উপস্থিত নেই।
ক্লিনফ্রেন্ড

2
@ ক্লেইনফ্রেন্ড @ লুক: যদি Autorunউপস্থিত না থাকে তবে আপনি @chcp 65001>nul
ডাক্টো

1
@ ডাঃ জ্যাকি নিশ্চিত নয় যে তারা বিপজ্জনক বলতে কী বোঝায়। আমি কেবল ওপি-র প্রশ্নের উত্তর দিয়েছি। আপনার এটি করা উচিত কিনা তা ভিন্ন প্রশ্ন। আমি বিশ্বাস করি পাইথন নিয়ে কিছু সমস্যা থাকতে পারে, তাই আপনি কোডপেজটি কমপক্ষে 65001 এ সেট করার আগে এটি পরীক্ষা করে দেখতে পারেন।
নীলস ম্যাগনে লুন্ডে

38

ব্যক্তিগতভাবে, আমি রেজিস্ট্রি পরিবর্তন পছন্দ করি না। এটি প্রচুর সমস্যা সৃষ্টি করতে পারে। আমি একটি ব্যাচ ফাইল তৈরি করেছি:

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

আমি C:\Windows\System32সুইচ.বাট হিসাবে সংরক্ষণ করেছি।

আমি ডেস্কটপটিতে cmd.exe এর জন্য একটি লিঙ্ক তৈরি করেছি।

সিএমডি শর্টকাটের বৈশিষ্ট্যগুলিতে, গন্তব্যটিকে এতে পরিবর্তন করে: C:\Windows\System32\cmd.exe /k switch

ভাল, যখন আমি ইউটিএফ -8 টাইপ করতে হবে, আমি এই লিঙ্কটি ব্যবহার করি।


7
মনে রাখবেন এটি Active code page: 65001স্টডআউটে মুদ্রণ করবে । সুতরাং আপনি যদি এমন কিছু CHCP 65001 && mycommand.exeকরেন তবে শুরুতে কোডপেজটি মুদ্রিত হয়ে পাবেন। আপনার দরকারCHCP 65001 >nul && mycommand.exe
ফ্রম্বার্ট

32

রেগ ফাইল:

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. মান ডেস্ক বা হেক্সে হতে পারে
  2. % সিস্টেমরুট% এড়াতে হবে
  3. REG_DWORD বাদ দেওয়া যাবে না

শক্তির উৎস:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. মান ডেস্ক বা হেক্সে হতে পারে
  2. -Type DWord পাওয়ারশেল 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. মান ডেস্ক বা হেক্সে হতে পারে
  2. ব্যবহার করতে পারেন / -> \
  3. ব্যবহার করতে পারেন HKCU -> HKEY_CURRENT_USER
  4. ব্যবহার করতে পারেন user -> HKEY_CURRENT_USER

উইন্ডোজ 10. কাজ না কি কাজ একটি অটোরান যে chcp command.Eg মাধ্যমে codepage সেট তৈরি করা নেই
জর্জ

সম্পাদনার অভদ্রভাবে সময় নির্ধারণের আগে আমি যা বলতে চাইছিলাম তা হ'ল chcp 65001একটি অটোরান কমান্ড ফাইলে। স্ট্যাকওভারফ্লো.com
জর্জ

জিনিসটি হ'ল এটি কেবল সিএমডির পক্ষে কাজ করে, তবে নিজে কনসোলের জন্য নয়।
অ্যানড্যামন

5

কোডপেজ পরিবর্তন করার আদেশটি হ'ল chcp <codepage>। উদাহরণ: chcp 1252। আপনার এটি পাওয়ারশেল উইন্ডোতে টাইপ করা উচিত। এটি প্রতিবার টাইপ করার ঝামেলা এড়াতে (যদি আপনাকে সর্বদা কোডপেজ পরিবর্তন করতে হয়), আপনি এটি প্রোগ্রামের কমান্ড লাইনে যুক্ত করতে পারেন। এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. স্টার্ট মেনুতে পাওয়ারশেল আইকনটিতে ডান ক্লিক করুন এবং "আরও"> "ফাইলের অবস্থান খুলুন" নির্বাচন করুন।
  2. পাওয়ারশেল শর্টকাটটিতে ডান ক্লিক করুন এবং "সম্পত্তি" নির্বাচন করুন।
  3. "টার্গেট" কমান্ড লাইনের শেষে নিম্নলিখিতটি যুক্ত করুন: -NoExit -Command "chcp 1252"

খুশী থেকো. আপনার যদি অন্য কোনও বিকল্প না থাকে তবে উইন্ডোজ রেজিস্ট্রি নিয়ে গোলযোগ করবেন না।


এই আমার জন্য নিখুঁতভাবে কাজ। -NoExit -Command "chcp 1252 > null"শুরুতে নির্বাচিত কোড পৃষ্ঠা সম্পর্কে বার্তাটি বাদ দেয়।
কোডমনেকি

5

এটি একটি পাওয়ারশেল প্রোফাইল তৈরি করে এবং "chcp 65001> ull null" কমান্ডটি যুক্ত করে এটি করা যেতে পারে:

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

এটিতে রেজিস্ট্রি সম্পাদনা করার প্রয়োজন নেই এবং শর্টকাট সম্পাদনা করার মতো নয়, উইন্ডোজ এক্সপ্লোরার প্রসঙ্গ মেনু ব্যবহার করে যদি একটি নির্দিষ্ট ফোল্ডারে পাওয়ারশেল শুরু করা হয় তবে কাজ করবে।


1
@ পিম্পজুইসআইটি, না .. এই উত্তরের প্রথম লাইনটি দেখুন।
ডাক্তো

4

1809 উইন্ডোজ 10 এর বিল্ডে আমি সিস্টেমে গিয়ে Language settings, নির্বাচন করে Administrative language settings, ক্লিক করে Change system locale...এবং পরীক্ষা করে Beta: Use Unicode UTF-8 for worldwide language supportএবং তারপরে আমার পিসি পুনরায় চালু করে স্থায়ীভাবে এটি সমাধান করতে সক্ষম হয়েছি।

এইভাবে এটি সমস্ত অ্যাপ্লিকেশনগুলিতে প্রযোজ্য এমনকি এমন একটিও যা আমি কমান্ড প্রম্পট থেকে শুরু করি না!
(যা আমার পক্ষে প্রয়োজনীয় ছিল, যেহেতু আমি পরমাণু থেকে আগদা কোড সম্পাদনা করার চেষ্টা করছিলাম।)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.