ছোট বিবরণ:
এগুলিকে অভ্যন্তরীণ হিসাবে উল্লেখ করা হয় goomoji
এবং এগুলি মানহীন UTF-8 এক্সটেনশন হিসাবে উপস্থিত হয়। জিমেইল যখন এই চরিত্রগুলির মধ্যে একটির মুখোমুখি হয়, তখন এটি সম্পর্কিত আইকন দ্বারা প্রতিস্থাপিত হয়। আমি তাদের উপর কোনও ডকুমেন্টেশন খুঁজে পাচ্ছিলাম না, তবে আমি ফর্ম্যাটটি রিভার্স করতে পেরেছি।
এই আইকন কি?
এই আইকনগুলি হ'ল আইকনগুলি যা "সন্নিবেশ ইমোটিকনস" প্যানেলের অধীনে প্রদর্শিত হয়।
আমি 52E
তালিকার আইকনটি দেখতে পাচ্ছি না, আবার আরও অনেকে রয়েছেন যা একই সম্মেলনটি অনুসরণ করে।
মনে রাখবেন যে এখানে কিছু আইকন রয়েছে যাদের নাম উপসর্গ করা হয়েছে, যেমন । এই আইকনগুলি এই পদ্ধতিতে কীভাবে ব্যবহার করা যায় তা আমি নির্ধারণ করতে সক্ষম হইনি।gtalk.03C
এই ডেটা ইউআরআই জিনিসটি কী?
এটি আসলে কোনও ডেটা ইউআরআই নয় , যদিও এটি কিছু সাদৃশ্য ভাগ করে। এটি আরএফসি 2047 - এ সংজ্ঞায়িত ইমেল বিষয়গুলিতে নন-এসসিআইআই অক্ষরগুলি এনকোড করার জন্য এটি একটি বিশেষ বাক্য গঠন । মূলত, এটি এর মতো কাজ করে।
=?charset?encoding?data?=
সুতরাং, আমাদের উদাহরণ স্ট্রিংয়ে, আমরা নিম্নলিখিত তথ্য আছে।
=?UTF-8?B?876Urg==?=
charset
= UTF-8
encoding
= B
(মানে বেস 64)
data
= 876Urg==
সুতরাং কিভাবে এটি কাজ করে?
আমরা জানি যে কোনওভাবে, 876Urg==
আইকনটির অর্থ 52E
, তবে কীভাবে?
আমরা যদি বেস 64 ডিকোড 876Urg==
করি তবে আমরা পাই 0xf3be94ae
। এটি বাইনারিতে নিম্নলিখিতগুলির মতো দেখাচ্ছে:
11110011 10111110 10010100 10101110
এই বিটগুলি 4-বাইট UTF-8 এনকোডড অক্ষরের সাথে সামঞ্জস্যপূর্ণ।
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
সুতরাং সম্পর্কিত বিটগুলি নিম্নলিখিত:
011 111110 010100 101110
অথবা যখন সারিবদ্ধ:
00001111 11100101 00101110
হেক্সাডেসিমালে, এই বাইটগুলি নিম্নলিখিত:
FE52E
যেমন আপনি দেখতে পাচ্ছেন, অন্যান্য ইউটিএফ -8 বর্ণগুলি থেকে আইকনগুলি FE
আলাদা করার জন্য সম্ভবত উপসর্গ ব্যতীত এটি আইকন ইউআরএলটিতে goomoji
মেলে 52E
। কিছু পরীক্ষা প্রমাণ করে যে এটি অন্যান্য আইকনগুলির জন্য সত্য holds
প্রচুর কাজের মতো মনে হচ্ছে, কোনও কনভার্টার আছে ?:
এটি অবশ্যই স্ক্রিপ্ট করা যেতে পারে। আমি আমার পরীক্ষার জন্য নিম্নলিখিত পাইথন কোড তৈরি করেছি। এই ফাংশনগুলি ইউআরএলে পাওয়া শর্ট হেক্স স্ট্রিংটিতে এবং বেস বেস 64 এনকোডড স্ট্রিংটিকে রূপান্তর করতে পারে। দ্রষ্টব্য, এই কোডটি পাইথন 3 এর জন্য লেখা এবং পাইথন 2 সামঞ্জস্যপূর্ণ নয়।
রূপান্তর ফাংশন:
import base64
def goomoji_decode(code):
#Base64 decode.
binary = base64.b64decode(code)
#UTF-8 decode.
decoded = binary.decode('utf8')
#Get the UTF-8 value.
value = ord(decoded)
#Hex encode, trim the 'FE' prefix, and uppercase.
return format(value, 'x')[2:].upper()
def goomoji_encode(code):
#Add the 'FE' prefix and decode.
value = int('FE' + code, 16)
#Convert to UTF-8 character.
encoded = chr(value)
#Encode UTF-8 to binary.
binary = bytearray(encoded, 'utf8')
#Base64 encode return end return a UTF-8 string.
return base64.b64encode(binary).decode('utf-8')
উদাহরণ:
print(goomoji_decode('876Urg=='))
print(goomoji_encode('52E'))
আউটপুট:
52E
876Urg==
এবং অবশ্যই, একটি আইকনের ইউআরএল সন্ধানের জন্য জিমেইলে কেবল একটি নতুন খসড়া তৈরি করা, আপনি যে আইকনটি চান তা সন্নিবেশ করা এবং আপনার ব্রাউজারের ডিওএম পরিদর্শক ব্যবহার করা দরকার।