আমি কেবল ভেবেছিলাম যে আমি এখানে এমন কিছু উল্লেখ করব যা অবশেষে যা চলছে তা বুঝতে পেরে আমাকে দীর্ঘসময় ধরে পরীক্ষার জন্য ব্যয় করতে হবে। এটি এখানে প্রত্যেকের পক্ষে এতটাই সুস্পষ্ট হতে পারে যে তারা এটি উল্লেখ করে বিরক্ত করেনি। তবে তারা যদি আমাকে সাহায্য করত তবে সেই নীতিতে ...!
এনবি: আমি জেথনকে বিশেষভাবে ব্যবহার করছি , v 2.7, সুতরাং সম্ভবত এটি সিপিথনের ক্ষেত্রে প্রযোজ্য না ...
এনবি 2: আমার .py ফাইলের প্রথম দুটি লাইন এখানে রয়েছে:
# -*- coding: utf-8 -*-
from __future__ import print_function
"%" (একেএ "ইন্টারপোলেশন অপারেটর") স্ট্রিং নির্মাণ পদ্ধতিটিও অতিরিক্ত সমস্যাগুলির কারণ করে ... যদি "পরিবেশ" এর ডিফল্ট এনকোডিং ASCII হয় এবং আপনি এর মতো কিছু করার চেষ্টা করেন
print( "bonjour, %s" % "fréd" ) # Call this "print A"
আপনাকে Eclipse এ চলতে কোনও অসুবিধা হবে না ... একটি উইন্ডোজ CLI (ডস উইন্ডো) এ আপনি দেখতে পাবেন যে এনকোডিংটি কোড পৃষ্ঠা 850 (আমার উইন্ডোজ 7 OS) বা এর অনুরূপ কিছু, যা কমপক্ষে ইউরোপীয় উচ্চারণযুক্ত অক্ষরগুলি পরিচালনা করতে পারে, তাই এটি 'কাজ করব।
print( u"bonjour, %s" % "fréd" ) # Call this "print B"
কাজ করবে।
যদি ওটিওএইচ, আপনি সিএলআই থেকে কোনও ফাইলের দিকে নির্দেশ করেন তবে স্টাডআউট এনকোডিং কোনও হবে না, এটি ASCII- তে ডিফল্ট হবে (যাইহোক আমার OS এ), যা উপরের কোনও প্রিন্ট হ্যান্ডেল করতে সক্ষম হবে না ... (ভয়ঙ্কর এনকোডিং ত্রুটি).
সুতরাং আপনি ব্যবহার করে আপনার স্টাডাউট পুনর্নির্দেশের কথা ভাবতে পারেন
sys.stdout = codecs.getwriter('utf8')(sys.stdout)
এবং কোনও ফাইলের সিআইএল পাইপিংয়ে চালানোর চেষ্টা করুন ... খুব অদ্ভুতভাবে, উপরোক্ত একটি মুদ্রণ করা কাজ করবে ... তবে উপরের বি প্রিন্ট করলে এনকোডিংয়ের ত্রুটি ছুঁড়ে যাবে! নিম্নলিখিতগুলি ঠিক আছে তবে কাজ করবে:
print( u"bonjour, " + "fréd" ) # Call this "print C"
আমি যে সিদ্ধান্তে পৌঁছেছি (অস্থায়ীভাবে) তা হ'ল যদি "ইউ" উপসর্গ ব্যবহার করে ইউনিকোড স্ট্রিং হিসাবে চিহ্নিত একটি স্ট্রিং যদি %-হ্যান্ডলিং পদ্ধতিতে জমা দেওয়া হয় তবে তা ডিফল্ট পরিবেশ এনকোডিংয়ের ব্যবহারের সাথে জড়িত বলে মনে হয়, নির্বিশেষে আপনি পুনর্নির্দেশ stdout সেট আছে কিনা!
লোকেরা কীভাবে এটি ব্যবহার করে তা পছন্দের বিষয়। আমি কোনও ইউনিকোড বিশেষজ্ঞকে এটির জন্য স্বাগত জানাব কেন এটি ঘটে, আমি এটি কোনওভাবে ভুল পেয়েছি কিনা, এর জন্য পছন্দসই সমাধানটি কী, এটি সিপিথনের ক্ষেত্রেও প্রযোজ্য কিনা, পাইথন 3 ইত্যাদিতে ঘটে কিনা ইত্যাদি ইত্যাদি।