আপডেট করুন: পাইথন 3.6 কার্যকরী PEP 528: UTF-8- উইন্ডোজ পরিবর্তন এনকোডিং কনসোল : Windows এ ডিফল্ট কনসোল এখন সব ইউনিকোড অক্ষর গ্রহণ করব। অভ্যন্তরীণভাবে, এটা হিসাবে একই ইউনিকোড API ব্যবহার করে প্যাকেজ নিচে উল্লিখিত । এখনই কাজ করা উচিত।win-unicode-console
print(unicode_string)
আমি একটি UnicodeEncodeError: 'charmap' codec can't encode character...
ত্রুটি পেয়েছি ।
ত্রুটির অর্থ হ'ল আপনি যে ইউনিকোড অক্ষর মুদ্রণের চেষ্টা করছেন তা বর্তমান ( chcp
) কনসোল অক্ষর এনকোডিং ব্যবহার করে উপস্থাপন করা যায় না । কোডপেজটি প্রায়শই 8-বিট এনকোডিং হয় যেমন cp437
~ 1 এম ইউনিকোড অক্ষর থেকে কেবলমাত্র ~ 0x100 অক্ষর উপস্থাপন করতে পারে:
>>> আপনি "\ N {ইউরো স্বাক্ষর}" enc এনকোড ('সিপি 437')
ট্রেসব্যাক (সবচেয়ে সাম্প্রতিকতম কল সর্বশেষ):
...
ইউনিকোড এনকোড এরির: 'চারম্যাপ' কোডেক 0 'পজিশনে' character u20ac 'অক্ষরটি এনকোড করতে পারে না:
চরিত্রের মানচিত্র
আমি ধরে নিলাম এটি কারণ উইন্ডোজ কনসোলটি ইউনিকোড-কেবলমাত্র অক্ষরগুলি গ্রহণ করে না। এর সর্বোত্তম উপায় কি?
উইন্ডোজ কনসোলটি ইউনিকোড অক্ষর গ্রহণ করে এবং সংশ্লিষ্ট ফন্টটি কনফিগার করা থাকলে এটি এমনকি তাদের (বিএমপি) প্রদর্শন করতে পারে । @ দাইরা হপউডের উত্তরেWriteConsoleW()
প্রস্তাবিত হিসাবে API ব্যবহার করা উচিত । এটিকে স্বচ্ছভাবে বলা যেতে পারে যেমন, আপনি প্যাকেজ ব্যবহার করেন তবে আপনার স্ক্রিপ্টগুলি পরিবর্তন করার দরকার নেই এবং এটি করা উচিত :win-unicode-console
T:\> py -mpip install win-unicode-console
T:\> py -mrun your_script.py
পাইথন ৩.৪, ইউনিকোড, বিভিন্ন ভাষা এবং উইন্ডোজের সাথে কী চুক্তি হয়েছে দেখুন ?
?
এই পরিস্থিতিতে ব্যর্থ হওয়ার পরিবর্তে পাইথনকে স্বয়ংক্রিয়ভাবে মুদ্রণ করার কোনও উপায় আছে কি ?
যদি ?
আপনার ক্ষেত্রে সমস্ত অনিবার্যযোগ্য অক্ষরগুলি প্রতিস্থাপন করা যথেষ্ট হয় তবে আপনি PYTHONIOENCODING
এনভ্যাভার সেট করতে পারেন :
T:\> set PYTHONIOENCODING=:replace
T:\> python3 -c "print(u'[\N{EURO SIGN}]')"
[?]
পাইথন ৩.6 PYTHONIOENCODING
++ এ এনভ্বর দ্বারা নির্দিষ্ট এনকোডিংটি ইন্টারেক্টিভ কনসোল বাফারদের জন্য উপেক্ষা করা হবে যদি না PYTHONLEGACYWINDOWSIOENCODING
এনভ্বর একটি খালি স্ট্রিং না করে সেট করা থাকে।