আমি একটি অভিধান তৈরি করতে চাই যেখানে ইংরেজি শব্দগুলি রাশিয়ান এবং ফরাসি অনুবাদগুলিতে নির্দেশ করে।
পাইথনে আমি কীভাবে ইউনিকোড অক্ষরগুলি মুদ্রণ করব? এছাড়াও, আপনি কীভাবে একটি চলকটিতে ইউনিকোড অক্ষর সংরক্ষণ করবেন?
আমি একটি অভিধান তৈরি করতে চাই যেখানে ইংরেজি শব্দগুলি রাশিয়ান এবং ফরাসি অনুবাদগুলিতে নির্দেশ করে।
পাইথনে আমি কীভাবে ইউনিকোড অক্ষরগুলি মুদ্রণ করব? এছাড়াও, আপনি কীভাবে একটি চলকটিতে ইউনিকোড অক্ষর সংরক্ষণ করবেন?
উত্তর:
আপনার পাইথন উত্স কোডে ইউনিকোড অক্ষরগুলি অন্তর্ভুক্ত করার জন্য, আপনি স্ট্রিংয়ে ফর্মের মধ্যে ইউনিকোড পালাবার অক্ষরগুলি ব্যবহার করতে পারেন \u0123
এবং 'ইউ' দিয়ে স্ট্রিংটিকে আধ্যাত্মিক উপসর্গ করতে পারেন।
পাইথন ইন্টারেক্টিভ কনসোলে চলছে এমন একটি উদাহরণ:
>>> print u'\u0420\u043e\u0441\u0441\u0438\u044f'
Россия
পাইথন ইউনিকোড ডকুমেন্টেশনে বর্ণিত স্ট্রিংগুলি হ'ল ইউনিকোড-ধরণের ভেরিয়েবল ।
যদি উপরের কমান্ডটি চালানো আপনার পক্ষে টেক্সটটি সঠিকভাবে প্রদর্শন না করে, আপনার টার্মিনালটি ইউনিকোড অক্ষর প্রদর্শন করতে সক্ষম নয়।
কোনও ফাইল থেকে ইউনিকোড ডেটা পড়ার তথ্যের জন্য, এই উত্তরটি দেখুন:
mystr
? তাহলে কীভাবে এটি প্রিন্ট করবেন?
print your_unicode_characters.encode('utf-8')
পাইথন ইন্টারপ্রেটার থেকে সরাসরি একটি ইউনিকোড অক্ষর মুদ্রণ করুন:
el@apollo:~$ python
Python 2.7.3
>>> print u'\u2713'
✓
ইউনিকোড অক্ষর u'\u2713'
একটি চেকমার্ক। দোভাষী স্ক্রিনে চেকমার্ক মুদ্রণ করে।
পাইথন স্ক্রিপ্ট থেকে একটি ইউনিকোড অক্ষর মুদ্রণ করুন:
এটিকে পরীক্ষা করুন py
#!/usr/bin/python
print("here is your checkmark: " + u'\u2713');
এটি এইভাবে চালান:
el@apollo:~$ python test.py
here is your checkmark: ✓
যদি এটি আপনার জন্য কোনও চেকমার্ক না দেখায় তবে সমস্যাটি অন্য কোথাও যেমন টার্মিনাল সেটিংস বা স্ট্রিম পুনঃনির্দেশের সাহায্যে আপনি করছেন এমন কিছু হতে পারে।
একটি ফাইলে ইউনিকোড অক্ষর সংরক্ষণ করুন:
এটি ফাইলটিতে সংরক্ষণ করুন: foo.py:
#!/usr/bin/python -tt
# -*- coding: utf-8 -*-
import codecs
import sys
UTF8Writer = codecs.getwriter('utf8')
sys.stdout = UTF8Writer(sys.stdout)
print(u'e with obfuscation: é')
এটি চালান এবং ফাইলের পাইপ আউটপুট:
python foo.py > tmp.txt
Tmp.txt খুলুন এবং ভিতরে দেখুন, আপনি এটি দেখতে পাবেন:
el@apollo:~$ cat tmp.txt
e with obfuscation: é
সুতরাং আপনি ইউনিকোড ই সংরক্ষণ করেছেন এবং একটি ফাইলের মধ্যে একটি বিস্মৃত চিহ্ন দিয়ে।
আপনি করার চেষ্টা করছেন তবে print()
ইউনিকোড এবং ASCII কোডেক ত্রুটি পাচ্ছেন , খুঁজে বার করো এই পৃষ্ঠার , TLDR যার করি export PYTHONIOENCODING=UTF-8
পাইথন (এই পরিবর্তনশীল নিয়ন্ত্রণ হিসাবে আপনার স্ট্রিং ডেটা সঙ্কেতাক্ষরে লিখা কনসোল চেষ্টা বাইটের অনুক্রম) আপ অগ্নিসংযোগ আগে। অভ্যন্তরীণভাবে পাইথন 3 ইউটিএফ -8 ডিফল্টরূপে ব্যবহার করে ( ইউনিকোড হাওটো দেখুন) তাই সমস্যা না; অন্যান্য উত্তর এবং মন্তব্যগুলিতে দেখা যায়, আপনি কেবল স্ট্রিংগুলিতে ইউনিকোড রাখতে পারেন। আপনি যখন চেষ্টা করেন এবং আপনার কনসোলটিতে এই ডেটাটি বের করেন তখন সমস্যাটি ঘটে। পাইথন মনে করে যে আপনার কনসোলটি কেবল এসসিআই পরিচালনা করতে পারে। অন্যান্য উত্তরগুলির মধ্যে কিছু বলে, "প্রথমে এটি একটি ফাইলে লিখুন" তবে নোট করুন যে তারা এনকোডিং (ইউটিএফ -8) নির্দিষ্ট করার জন্য নির্দিষ্ট করে (সুতরাং, পাইথন লিখিতভাবে কিছু পরিবর্তন করে না), এবং তারপরে পড়ার জন্য একটি পদ্ধতি ব্যবহার করুন যে ফাইলটি কেবলমাত্র এনকোডিংয়ের জন্য কোনও প্রকার ছাড়াই বাইটসকে আলাদা করে দেয়, সে কারণেই এটি কাজ করে।
পাইথন 2 এ আপনি ইউনিকোড স্ট্রিংগুলি এ u
হিসাবে u"猫"
ব্যবহার করে decode()
এবং encode()
ইউনিকোডে এবং অনুবাদ করতে যথাক্রমে ইউনিকোড স্ট্রিং ঘোষণা করেন।
পাইথন 3 এ এটি খানিকটা সহজ। একটি খুব ভাল ওভারভিউ এখানে পাওয়া যাবে । এই উপস্থাপনাটি আমার জন্য অনেক কিছুই স্পষ্ট করে দিয়েছে।
গুগল এই বিষয় অনুসন্ধান করার সময় এটি প্রথম স্ট্যাক ওভারফ্লো ফলাফল বলে বিবেচনা করে এটি উল্লেখ করা যায় যে u
ইউনিকোড স্ট্রিংগুলির উপসীকরণ পাইথন ৩-এ alচ্ছিক ((পাইথন ২ উদাহরণ শীর্ষের উত্তর থেকে অনুলিপি করা হয়েছিল)
পাইথন 3 (উভয় কাজ):
print('\u0420\u043e\u0441\u0441\u0438\u044f')
print(u'\u0420\u043e\u0441\u0441\u0438\u044f')
পাইথন 2:
print u'\u0420\u043e\u0441\u0441\u0438\u044f'
আমি উইন্ডোজে পোর্টেবল উইনপাইথন ব্যবহার করি, এতে আইপিথন কিউটি কনসোল অন্তর্ভুক্ত রয়েছে, আমি নিম্নলিখিতগুলি অর্জন করতে পারি।
>>>print ("結婚")
結婚
>>>print ("おはよう")
おはよう
>>>str = "結婚"
>>>print (str)
結婚
ইউনিকোড অক্ষরগুলি প্রদর্শনের জন্য আপনার কনসোল দোভাষীকে ইউনিকোড সমর্থন করা উচিত।
আরও একটি জিনিস যা এখনও যোগ করা হয়নি
পাইথন 2-এ, আপনি যদি ইউনিকোড এবং ব্যবহারযোগ্য একটি ভেরিয়েবল মুদ্রণ করতে চান .format()
, তবে এটি করুন (বেস স্ট্রিংটি যেটি ইউনিকোড স্ট্রিং ফর্ম্যাট করা হচ্ছে তা দিয়ে u''
:
>>> text = "Université de Montréal"
>>> print(u"This is unicode: {}".format(text))
>>> This is unicode: Université de Montréal
'+' কে '000' দিয়ে প্রতিস্থাপন করুন । উদাহরণস্বরূপ, 'U + 1F600' 'U0001F600' হয়ে উঠবে এবং ইউনিকোড কোডটি " with " দিয়ে প্রিন্ট করুন এবং মুদ্রণ করুন। উদাহরণ:
>>> print("Learning : ", "\U0001F40D")
Learning : 🐍
>>>
এটি পরীক্ষা করে দেখুন এটি পাইথন ইউনিকোড ইমোজিটিকে সহায়তা করবে