উপস্থাপনা: আপনার দর্শক কাজ করবে?
আপনার দর্শক / সম্পাদক / টার্মিনালটি (তবে আপনি নিজের utf-8 এনকোডযুক্ত ফাইলের সাথে ইন্টারঅ্যাক্ট করছেন) ফাইলটি পড়তে পারে তা নিশ্চিত করুন। এটি প্রায়শই উইন্ডোজের একটি সমস্যা , উদাহরণস্বরূপ, নোটপ্যাড।
কোনও পাঠ্য ফাইলে ইউনিকোড পাঠ্য লিখছেন?
পাইথন 2 এ, মডিউলটি ব্যবহার open
করুন io
(এটি open
পাইথন 3 এর বিল্টিনের সমান ):
import io
সেরা অনুশীলন, সাধারণভাবে, UTF-8
ফাইলগুলিতে লেখার জন্য ব্যবহার করুন (আমাদের ইউটিএফ -8 দিয়ে বাইট-অর্ডার সম্পর্কেও চিন্তা করতে হবে না)।
encoding = 'utf-8'
utf-8 হ'ল সর্বাধিক আধুনিক এবং সর্বজনীনভাবে ব্যবহারযোগ্য এনকোডিং - এটি সমস্ত ওয়েব ব্রাউজার, বেশিরভাগ পাঠ্য-সম্পাদক (আপনার সমস্যা থাকলে আপনার সেটিংস দেখুন) এবং বেশিরভাগ টার্মিনাল / শেলগুলিতে কাজ করে।
উইন্ডোজে, আপনি চেষ্টা করতে utf-16le
পারেন যদি আপনি নোটপ্যাডে (অথবা অন্য কোনও সীমাবদ্ধ দর্শক) সীমাবদ্ধ থাকেন।
encoding = 'utf-16le' # sorry, Windows users... :(
এবং এটি কেবল প্রসঙ্গ পরিচালকের সাথে খুলুন এবং আপনার ইউনিকোড অক্ষরগুলি লিখে দিন:
with io.open(filename, 'w', encoding=encoding) as f:
f.write(unicode_object)
অনেক ইউনিকোড অক্ষর ব্যবহার উদাহরণ
এখানে একটি উদাহরণ রয়েছে যে ডিজিটাল উপস্থাপনা (পূর্ণসংখ্যায়) থেকে একটি এনকোডযুক্ত মুদ্রণযোগ্য আউটপুট পর্যন্ত এর নামের সাথে, যদি তিনটি বিট প্রশস্ত (4 সর্বাধিক, তবে এটি কিছুটা দূরে চলে যাবে) পর্যন্ত প্রতিটি সম্ভাব্য চরিত্রকে ম্যাপ করার চেষ্টা করে if সম্ভব (এটি নামক কোনও ফাইলে রাখুন uni.py
):
from __future__ import print_function
import io
from unicodedata import name, category
from curses.ascii import controlnames
from collections import Counter
try: # use these if Python 2
unicode_chr, range = unichr, xrange
except NameError: # Python 3
unicode_chr = chr
exclude_categories = set(('Co', 'Cn'))
counts = Counter()
control_names = dict(enumerate(controlnames))
with io.open('unidata', 'w', encoding='utf-8') as f:
for x in range((2**8)**3):
try:
char = unicode_chr(x)
except ValueError:
continue # can't map to unicode, try next x
cat = category(char)
counts.update((cat,))
if cat in exclude_categories:
continue # get rid of noise & greatly shorten result file
try:
uname = name(char)
except ValueError: # probably control character, don't use actual
uname = control_names.get(x, '')
f.write(u'{0:>6x} {1} {2}\n'.format(x, cat, uname))
else:
f.write(u'{0:>6x} {1} {2} {3}\n'.format(x, cat, char, uname))
# may as well describe the types we logged.
for cat, count in counts.items():
print('{0} chars of category, {1}'.format(count, cat))
এটি প্রায় এক মিনিটের ক্রম অনুসারে চলতে হবে এবং আপনি ডেটা ফাইলটি দেখতে পারবেন এবং যদি আপনার ফাইল প্রদর্শক ইউনিকোড প্রদর্শন করতে পারেন তবে আপনি এটি দেখতে পাবেন। বিভাগগুলি সম্পর্কিত তথ্য এখানে পাওয়া যাবে । গণনার উপর ভিত্তি করে, আমরা সম্ভবত সিএন এবং কো বিভাগগুলি বাদ দিয়ে আমাদের ফলাফলগুলি উন্নত করতে পারি, যার কোনও চিহ্ন নেই।
$ python uni.py
এটি হেক্সাডেসিমাল ম্যাপিং, বিভাগ , প্রতীক (নাম না পেলে সম্ভবত একটি নিয়ন্ত্রণ চরিত্র) এবং প্রতীকটির নাম প্রদর্শন করবে। যেমন
আমি less
ইউনিক্স বা সাইগউইনকে প্রস্তাব দিই (আপনার আউটপুটে পুরো ফাইলটি মুদ্রণ / বিড়াল করবেন না):
$ less unidata
উদাহরণস্বরূপ পাইথন 2 (ইউনিকোড 5.2) ব্যবহার করে আমি এটি থেকে যে নমুনাগুলি তৈরি করেছি তার অনুরূপ প্রদর্শিত হবে:
0 Cc NUL
20 Zs SPACE
21 Po ! EXCLAMATION MARK
b6 So ¶ PILCROW SIGN
d0 Lu Ð LATIN CAPITAL LETTER ETH
e59 Nd ๙ THAI DIGIT NINE
2887 So ⢇ BRAILLE PATTERN DOTS-1238
bc13 Lo 밓 HANGUL SYLLABLE MIH
ffeb Sm → HALFWIDTH RIGHTWARDS ARROW
অ্যানাকোন্ডার আমার পাইথন 3.5 এর ইউনিকোড 8.0 রয়েছে, আমি বেশিরভাগ 3 এর মত অনুমান করব।