উত্তর:
আপনি ঠিক, 3.1.3 দেখুন। ইউনিকোড স্ট্রিংস ।
পাইথন ২.০ এর পরে এটি সিনট্যাক্স।
ডিফল্ট স্ট্রিংয়ের ধরনটি ইউনিকোড হওয়ায় পাইথন 3 এগুলি তাদেরকে রিডান্ট্যান্ট করে তুলেছে। সংস্করণ 3.0 এর মাধ্যমে 3.2 এগুলি সরিয়ে ফেলল, তবে পাইথন 2 এর সাথে সামঞ্জস্যের জন্য 2 থেকে 3 রূপান্তরকে সহায়তা করার জন্য এগুলি 3.3+ এ পুনরায় যুক্ত করা হয়েছিল ।
ur"string"
) পাইথন 2 বৈধ, কিন্তু এটা পাইথন 3 দুর্ভাগ্যবশত অবৈধ সিনট্যাক্স হল
মধ্যে তোমার দর্শন লগ করা u'Some String'
মানে হল আপনার স্ট্রিং একটি হল ইউনিকোড স্ট্রিং ।
প্রশ্ন: আমি একটি ভয়ানক, ভয়াবহ তাড়াহুড়োয় আছি এবং আমি গুগল অনুসন্ধান থেকে এখানে পৌঁছেছি। আমি এই ডেটাটি কোনও ফাইলে লেখার চেষ্টা করছি, আমি একটি ত্রুটি পাচ্ছি এবং আমার দ্বিতীয় মৃত, সম্ভবত ত্রুটিযুক্ত, সমাধানটি প্রয়োজন।
উত্তর: আপনার সত্যিকার অর্থে জোেলের সম্পূর্ণ ন্যূনতম প্রতিটি সফ্টওয়্যার বিকাশকারী পড়তে হবে, ইউনিকোড এবং চরিত্রের সেটগুলি সম্পর্কে ইতিবাচকভাবে অবশ্যই জানতে হবে ( চরিত্রের সেটগুলিতে কোনও অজুহাত!) প্রবন্ধটি নয়।
প্রশ্ন: sry কোন সময় কোড pls
জরিমানা. চেষ্টা করুন str('Some String')
বা 'Some String'.encode('ascii', 'ignore')
। তবে আপনার ইউনিকোড স্ট্রিং রূপান্তরকরণ সম্পর্কিত কিছু উত্তর এবং আলোচনা এবং চরিত্রের এনকোডিংয়ের এই দুর্দান্ত, দুর্দান্ত, প্রাইমারটি পড়তে হবে ।
আমার অনুমান যে এটি "ইউনিকোড" নির্দেশ করে, এটি কি সঠিক?
হ্যাঁ.
যদি তা হয় তবে কখন থেকে পাওয়া যায়?
পাইথন 2.x.
পাইথন ৩.x এ স্ট্রিংগুলি ইউনিকোড ডিফল্টরূপে ব্যবহার করে এবং u
উপসর্গের কোনও প্রয়োজন নেই । দ্রষ্টব্য: পাইথন 3.0.০-৩.২ তে ইউটি একটি সিনট্যাক্স ত্রুটি। পাইথন ৩.৩++ এ 2/3 সামঞ্জস্যপূর্ণ অ্যাপ্লিকেশন লেখার পক্ষে আরও সহজ করার পক্ষে এটি আবার আইনী।
u
উপসর্গটি ব্যবহার করতে এটি পাইথন 3 এ এমনকি সিন্ট্যাক্স ত্রুটি ।
six.text_type()
এখনও সিদ্ধান্ত নিতে হবে যে আপনি এখনও (310) লোক ব্যবহার করে (আশাকরি ক্ষুদ্রতর) সংখ্যা ব্যবহারের জন্য যত্নশীল কিনা [[012] - অন্তত তথ্য রয়েছে যাতে আপনি চয়ন করতে পারেন।
আমি এখানে এসেছি কারণ আমার requests
আউটপুটটিতে মজার-চর-সিন্ড্রোম ছিল । আমি ভেবেছিলাম response.text
আমাকে একটি সঠিকভাবে ডিকোডড স্ট্রিং দেবে, তবে আউটপুটে আমি মজাদার ডাবল-অক্ষরগুলি পেয়েছি যেখানে জার্মান উলামাটদের উচিত ছিল।
দেখা গেছে যে response.encoding
কোনওভাবে খালি ছিল এবং সুতরাং response
কীভাবে সামগ্রীটিকে সঠিকভাবে ডিকোড করতে হবে এবং এএসসিআইআই হিসাবে বিবেচনা করা হয়নি (আমার ধারণা)।
আমার সমাধানটি ছিল 'রেসপন্স কনটেন্ট' সহ কাঁচা বাইটগুলি পেতে এবং decode('utf_8')
এটিতে ম্যানুয়ালি প্রয়োগ করা। ফলাফলটি ছিল উমলাউতে।
সঠিকভাবে ডিকোড করা হয়েছে
পশম
বনাম। অযৌক্তিকভাবে ডিকোড করা
ফজরের
মানুষের জন্য ব্যবহৃত সমস্ত স্ট্রিংয়ের জন্য আপনাকে "" ব্যবহার করা উচিত।
আমি খুঁজে পেয়েছি যে পাইথন স্ট্রিংগুলির সাথে কাজ করার সময় নিম্নলিখিত মানসিকতাটি অনেক সহায়তা করে: সমস্ত পাইথন ম্যানিফেস্ট স্ট্রিংগুলি u""
সিনট্যাক্স ব্যবহার করা উচিত । ""
বাক্য গঠনটি কেবল বাইট অ্যারেগুলির জন্য।
বশ করা শুরু করার আগে, আমাকে ব্যাখ্যা করুন। বেশিরভাগ পাইথন প্রোগ্রাম ""
স্ট্রিং ব্যবহার করে শুরু হয় । তবে তারপরে তাদের ইন্টারনেট থেকে ডকুমেন্টেশন সমর্থন করা দরকার, সুতরাং তারা ব্যবহার শুরু করে "".decode
এবং হঠাৎ করেই তারা এবং এই ডিকোডিংয়ের বিষয়ে সর্বত্র ব্যতিক্রম পাচ্ছে - সবগুলি ""
স্ট্রিং ব্যবহারের কারণে । এই ক্ষেত্রে, ইউনিকোড একটি ভাইরাসের মতো কাজ করে এবং সর্বনাশ ডেকে আনবে।
তবে, আপনি যদি আমার নিয়ম অনুসরণ করেন তবে আপনার এই সংক্রমণ হবে না (কারণ আপনি ইতিমধ্যে সংক্রামিত হয়ে যাবেন)।
bash -c "echo Shouldn\\'t you use b\\\"...\\\" for byte arrays?"
u""
।
এটি ইউনিকোড
কেবল ভেরিয়েবলের মধ্যে রাখুন str()
, এবং এটি কার্যকর হবে।
তবে আপনার নিম্নলিখিতগুলির মতো দুটি তালিকা রয়েছে:
a = ['co32','co36']
b = [u'co32',u'co36']
আপনি যদি পরীক্ষা করে set(a)==set(b)
দেখেন তবে এটি মিথ্যা হিসাবে আসবে, তবে আপনি যদি নিম্নলিখিতটি করেন:
b = str(b)
set(a)==set(b)
এখন, ফলাফলটি সত্য হবে।
str()
বা u'€'.encode()
) কখনই এনকোড করা উচিত নয় । যদি স্ট্রিংটিতে অ-এএসসিআইআই থাকে তবে ব্যবহারকারী একটি ইউনিকোডইনকোডেক্সপশন পাবেন।
b = str(b)
কেবলমাত্র repr()
তালিকার স্ট্রিং দেয় b = "[u'co32', u'co36']"
। তারপরেset(a)==set(b) = False