আমি এটি ব্যবহার করেছি:
u = unicode(text, 'utf-8')
তবে পাইথন 3 (বা ... সম্ভবত আমি কিছু অন্তর্ভুক্ত করতে ভুলে গেছি) এর সাথে ত্রুটি পেয়েছি:
NameError: global name 'unicode' is not defined
ধন্যবাদ.
উত্তর:
আক্ষরিক স্ট্রিংগুলি পাইথন 3-এ ডিফল্টরূপে ইউনিকোড।
ধরে নিলাম যে text
এটি একটি bytes
অবজেক্ট, কেবল ব্যবহার করুনtext.decode('utf-8')
unicode
str
পাইথন 2 এর পাইথন 3 এর সমতুল্য , তাই আপনি আরও লিখতে পারেন:
str(text, 'utf-8')
যদি তুমি বল.
str
এ ইউনিকোড, অর্থাৎ। এটা তাই এটি কোন জ্ঞান করে তোলে ডাকতে "সঙ্কেতমুক্ত" হয় decode
এটা
str(text, 'utf-8')
পাঠ্যটি অবশ্যই স্ট্রিং বাইনারি হতে হবে। উদাহরণস্বরূপstr(b'this is a binary', 'utf-8')
পাইথন 3.0 এ নতুন কী বলেছে:
সমস্ত পাঠ্য ইউনিকোড; তবে এনকোডযুক্ত ইউনিকোড বাইনারি ডেটা হিসাবে উপস্থাপিত হয়
আপনি যদি নিশ্চিত করতে চান যে আপনি utf-8 আউটপুট করছেন, এখানে ইউনিকোডে 3.0 থেকে এই পৃষ্ঠাটি থেকে একটি উদাহরণ দেওয়া হয়েছে :
b'\x80abc'.decode("utf-8", "strict")
কার্যতঃ হিসাবে, আমি এটি ব্যবহার করে যাচ্ছি:
# Fix Python 2.x.
try:
UNICODE_EXISTS = bool(type(unicode))
except NameError:
unicode = lambda s: str(s)
try: unicode = str; except: pass
।
unicode = str
যেহেতু এটি 2 বা 3 এ ব্যর্থ হবে না
from six import u as unicode
যা আমি কেবল পছন্দ করি কারণ এটি বেশি স্ব-ডকুমেন্টিং (যেহেতু ছয়টি 2/3 সামঞ্জস্যতার স্তর)unicode = str
এইভাবে আমি problem uFE0F, \ u000A ইত্যাদি ইত্যাদির অক্ষর এবং 16 বাইট সহ এনকোড করা ইমোজিগুলি রূপান্তর করতে আমার সমস্যার সমাধান করেছি।
example = 'raw vegan chocolate cocoa pie w chocolate & vanilla cream\\uD83D\\uDE0D\\uD83D\\uDE0D\\u2764\\uFE0F Present Moment Caf\\u00E8 in St.Augustine\\u2764\\uFE0F\\u2764\\uFE0F '
import codecs
new_str = codecs.unicode_escape_decode(example)[0]
print(new_str)
>>> 'raw vegan chocolate cocoa pie w chocolate & vanilla cream\ud83d\ude0d\ud83d\ude0d❤️ Present Moment Cafè in St.Augustine❤️❤️ '
new_new_str = new_str.encode('utf-16', 'surrogatepass').decode('utf-16')
print(new_new_str)
>>> 'raw vegan chocolate cocoa pie w chocolate & vanilla cream😍😍❤️ Present Moment Cafè in St.Augustine❤️❤️ '
পাইথন 2 প্রোগ্রামে আমি বহু বছর ধরে এটি ব্যবহার করেছিলাম:
ocd[i].namn=unicode(a[:b], 'utf-8')
পাইথন 3 এ এটি কাজ করেনি।
তবে, প্রোগ্রামটি কাজ করে উঠল:
ocd[i].namn=a[:b]
আমি কেন সেখানে ইউনিকোড প্রথম স্থানে রেখেছিলাম তা মনে নেই তবে আমি মনে করি এটি হ'ল কারণ নামটিতে সুইডিশ অক্ষর থাকতে পারে åäöÅÄÖ åäöÅÄÖ এমনকি তারা "ইউনিকোড" ছাড়াই কাজ করে।