একটি অনলাইন সরঞ্জাম সঠিকভাবে ঠিক করে দেওয়া এই দূষিত চীনা পাঠ্যের এনকোডিংটি আমি কীভাবে জানতে পারি?


3

সিম্প্লিফাইড চাইনিজে আমার একটি পাঠ্য রয়েছে, যা ইউটিএফ -8 পড়ার সাথে সাথে শুরু হয় ´ÓºÜ¾ÃÒÔÇ°¿ªÊ¼, যা ম্যান্ডারিনটুলস থেকে অনলাইন সরঞ্জাম ( মেরামত দুর্নীতিগ্রস্ত চীনা ইমেলের প্রথম অনুসন্ধানের ফলাফল ) সঠিকভাবে সংশোধন করে 从很久以前开始, তবে এটি কীভাবে স্থির করেছিল তা পরিষ্কার নয়। অনলাইন সরঞ্জাম এবং একটি হেক্স সম্পাদক ব্যবহার করে আমি জানি যে প্রতিটি অক্ষর নির্দিষ্ট দৈর্ঘ্য 32-বিট হিসাবে এনকোড করা আছে:

c2b4 c393 从
c2ba c39c 很
c2be c383 久
c392 c394 以
c387 c2b0 前
c2bf c2aa 开
c38a c2bc 始

এটি আরও দেখায় যে একটি অক্ষর সি 2 ** - সি 3 ** সীমাতে দুটি 16-বিট শব্দ হিসাবে এনকোড করা আছে। ইউটিএফ -16 এর সাথে প্রথম 16-বিট শব্দটি সর্বদা 0 এই অক্ষরগুলির জন্য থাকে। ইউটিএফ -8 এগুলির জন্য কেবল অক্ষর প্রতি 24 বিট ব্যবহার করে এবং কোডপেজ 936 এখানে কেবল অক্ষর অনুসারে 16 বিট ব্যবহার করে। সঠিক এনকোডিং রূপান্তর নির্ধারণ করতে আমি কোন পদ্ধতিটি ব্যবহার করতে পারি?

utf-8 উপস্থাপনা:

e4bb 8e 从
e5be 88 很
e4b9 85 久
e4bb a5 以
e589 8d 前
e5bc 80 开
e5a7 8b 始

সিপি 936 প্রতিনিধিত্ব:

b4d3 从
badc 很
bec3 久
d2d4 以
c7b0 前
bfaa 开
cabc 始

উত্তর:


1

দূষিত পাঠ্যটি ´ÓºÜ¾ÃÒÔÇ°¿ªÊ¼14 অক্ষর দীর্ঘ। যেহেতু সঠিক সরলীকৃত চাইনিজ পাঠ্যটি 从很久以前开始characters টি অক্ষর দীর্ঘ, এটি অবিলম্বে প্রস্তাব দেয় যে প্রতিটি সরলীকৃত চীনা বর্ণটি দুর্বল পাঠের সাথে দুটি অক্ষরের সাথে সামঞ্জস্য হতে পারে।

দুর্নীতিগ্রস্থ পাঠ্যের অক্ষরের UTF-16-তে নিম্নলিখিত হেক্স সমতুল্য রয়েছে (এবং ওপিতে প্রদর্শিত সিপি 936 সহ):

´ => b4
Ó => d3
º => ba
Ü => dc
¾ => be
à => c3
Ò => d2
Ô => d4
Ç => c7
° => b0
¿ => bf
ª => aa
Ê => ca
¼ => bc

আমি তুচ্ছ জাভা প্রোগ্রামটি ব্যবহার করে সেই অনুবাদটি করেছিলাম, তবে অনলাইনে সাইটগুলি একই জিনিস করতে পারে :

simplifiedChinese

সুতরাং, ম্যান্ডারিনির সমস্ত সরঞ্জামই সিপি 936 ব্যবহার করে প্রথম সরলীকৃত চীনা অক্ষর পেতে প্রথম দুটি দূষিত অক্ষরের হেক্স মানগুলি একত্রিত করতে হবে:

´ + Ó => b4 + d3 => b4d3 => 从
º + Ü => ba + dc => badc => 很
¾ + Ã => be + c3 => bec3 => 久
Ò + Ô => d2 + d4 => d2d4 => 以
Ç + ° => c7 + b0 => c7b0 => 前
¿ + ª => bf + aa => bfaa => 开
Ê + ¼ => ca + bc => cabc => 始 

সম্ভবতঃ ম্যান্ডারিন সরঞ্জামটি যাচাই করে যে দূষিত পাঠের রূপান্তরটি সত্যই বৈধ সরলিকৃত চীনা পাঠ্যর ফল দেয়।

প্রতিটি সরলীকৃত চাইনিজ সিপি 936 মান তার ইউনিকোড কোড পয়েন্টে ম্যাপ করা যায় । উদাহরণস্বরূপ, = 0xB4D3 = কোড পয়েন্ট 0x4ECE । এবং একবার আপনার কাছে ইউনিকোড কোড পয়েন্ট থাকলে আপনি যে কোনও এনকোডিংয়ে (সিপি 936, জিবি 18030, ইউটিএফ -16, ইত্যাদি) অনুবাদ করতে পারেন।

আপনার প্রশ্নের যে বিষয়টি সম্পর্কে আমি অস্পষ্ট তা প্রথম তালিকাটি যা প্রতিটি সরলীকৃত চীনা চরিত্রের (উদাহরণস্বরূপ c2b4 c393 从) 32-বিট উপস্থাপনা দেখায় । এটি ঠিক দেখাচ্ছে না, যেহেতু একটি অক্ষরের কোড পয়েন্ট (উদাহরণস্বরূপ 0x4ECE ) এবং এর 32-বিট উপস্থাপনা একই জিনিস। নাকি আমি কিছু ভুল বুঝছি?


এই পুরানো প্রশ্নের উত্তরের জন্য আপনাকে ধন্যবাদ, এটি ভবিষ্যতে কোনও দুর্নীতিগ্রস্ত এনকোডিংগুলি ঠিক করার জন্য আমাকে মূল্যবান অন্তর্দৃষ্টি দিয়েছে! ইউটিএফ -8 এর উইকিপিডিয়া নিবন্ধে এটি ব্যাখ্যা করা হয়েছে যে কীভাবে কোড পয়েন্টগুলি ইউটিএফ -8 বাইটে রূপান্তরিত হয়। এই দূষিত পাঠ্য সহ p এর cp936 কোড b4d3 দুটি 11-বিট কোডপয়েন্টস 00b4 এবং 00d3 এবং 11-বিট কোডপয়েন্ট 00 বি 4 (বাইনারি 00010110100 এ) হিসাবে আমার প্রথম তালিকার ইউটিএফ -8 বাইটস সি 2 বি 4 রয়েছে।
রুবিস্টালিয়ন

@ রবিস্ট্যালিয়ন ঠিক আছে, বুঝেছি আমি "নির্দিষ্ট দৈর্ঘ্য 32-বিট" "ইউটিএফ -32" হিসাবে সম্পূর্ণরূপে ভুল ব্যাখ্যা দিয়েছিলাম, তবে আপনি যা বলছিলেন তা তা নয় - আমার ভুল।
স্কোমিসা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.