সত্যই ভাল, খারাপ ইউটিএফ -8 উদাহরণ পরীক্ষার ডেটা [বন্ধ]


89

সুতরাং আমাদের এক্সএসএস ফিল্টারিং পরীক্ষা করার জন্য আমাদের কাছে এক্সএসএস চিট শীট রয়েছে - তবে সৌম্য পৃষ্ঠার উদাহরণ ছাড়াও আমার ইউটিএফ -8 কোড মিসবিহিং ডেটা পরিচালনা করতে পারে তা নিশ্চিত করার জন্য আমি কোনও খারাপ বা ত্রুটিযুক্ত টেস্ট ডেটা খুঁজে পাচ্ছি না।

পরীক্ষার জন্য আমি কোথায় কিছু ভাল উহ .. খারাপ ডেটা পেতে পারি? বা চরগুলির একটি জটিল ক্রম কী?




15
ăѣ𝔠 ծ ềſģȟ Ꭵ𝒋 31234567890! @ # $% ^ & * () -_ = + [{]};: '", <।> /? ~𝘈Ḇ𝖢𝕯٤ḞԍНǏ𝙅ƘԸⲘ𝙉০Ρ𝗤Ɍ𝓢ȚЦ𝒱Ѡ𝓧ƳȤѧᖯć𝗱ễ𝑓𝙜Ⴙ𝞲𝑗𝒌ļṃʼnо𝞎𝒒ᵲꜱ𝙩ừ𝗏ŵ𝒙𝒚ź1234567890!@#$%^&*()-_=+[{]};:'",<.>/?~ АḂ ꞠꓧȊ𝐉𝜥ꓡ𝑀𝑵Ǭ𝙿𝑄Ŗ𝑆𝒯𝖴𝘝𝘞ꓫŸ𝜡ả𝘢ƀ𝖼ḋếᵮℊ𝙝 Ꭵ𝕛 Ꭵ𝕛 кιṃ դ ⱺ𝓅𝘲𝕣𝖘ŧ𝑢ṽẉ𝘅 ყ ž1234567890! @ # $% ^ & * () -_ = + [{]}; : '', <।> /? ~Ѧ𝙱ƇᗞΣℱԍҤ١𝔍К𝓛𝓜ƝȎ𝚸𝑄Ṛ𝓢ṮṺƲᏔꓫ𝚈𝚭𝜶Ꮟçძ𝑒𝖿𝗀ḧ𝗂𝐣ҝɭḿ𝕟𝐨𝝔𝕢ṛ𝓼тú𝔳ẃ⤬𝝲𝗓1234567890!@#$%^&*()-_=+[{]};:'",<.>/?𝖠Β𝒞𝘋𝙴𝓕ĢȞỈ𝕵ꓗʟ𝙼ℕ 𝖠Β𝒞𝘋𝙴𝓕ĢȞỈ𝕵ꓗʟ𝙼ℕ০𝚸𝗤 Հꓢ ṰǓⅤ𝔚 Ⲭ𝑌𝙕𝘢𝕤
অ্যান্ড্রু

উত্তর:


99

4
আপনি এতে কোনও প্রচেষ্টা করেননি - পৃষ্ঠাটি হ'ল আমি যা খুঁজছিলাম। ;)
শিওনক্রস

76
ভুলে যাবেন না, উত্তরটি কোথায় সন্ধান করতে হবে তা জানা উত্তরটি জানার মতো গুরুত্বপূর্ণ।
জোনাথন লেফলার

19
আমি আপনাকে সতর্ক করে দিয়েছিলাম তার পরীক্ষাটি ইউটিএফ -8 এর পুরানো সংজ্ঞা অনুসারে, যখন 5 এবং 6 বাইট সিকোয়েন্সগুলি অনুমোদিত হয়েছিল, 17 এবং তারপরের প্লেনগুলি মুছে ফেলার আগে। এবং এটি সূচিত করে যে কোডপয়েন্টগুলি ইউ + এফএফএফই এবং ইউ + এফএফএফএফটি ইউটিএফ -8 এ অবৈধ, যখন ইউনিকোড কনসোর্টিয়াম অনুযায়ী তারা না হয়
সাইমন কিসানে

36

আরও দেখুন চীনা অক্ষর সহ একটি ফাইল কীভাবে জানতে পারে যে প্রতি চরিত্রের জন্য কতগুলি বাইট ব্যবহার করতে হবে? - সন্দেহ নেই, অন্যান্য এসও প্রশ্নগুলিও সহায়তা করবে help

ইউটিএফ -8 এ আপনি নিম্নলিখিত ধরণের বাইট পাবেন:

Binary    Hex          Comments
0xxxxxxx  0x00..0x7F   Only byte of a 1-byte character encoding
10xxxxxx  0x80..0xBF   Continuation bytes (1-3 continuation bytes)
110xxxxx  0xC0..0xDF   First byte of a 2-byte character encoding
1110xxxx  0xE0..0xEF   First byte of a 3-byte character encoding
11110xxx  0xF0..0xF4   First byte of a 4-byte character encoding

(শেষ লাইনটি 0xF0..0xF7 পড়তে হবে বলে মনে হচ্ছে; তবে, ইউনিকোডের 21-বিট পরিসর (U +0000 - U + 10FFFF) এর অর্থ হল যে সর্বোচ্চ বৈধ মান 0xF4; মান 0xF5..0xF7 এর মধ্যে উপস্থিত হতে পারে না বৈধ ইউটিএফ -8।)

বাইটগুলির একটি নির্দিষ্ট ক্রমটি বৈধ ইউটিএফ -8 এর অর্থ কিনা তা দেখার অর্থ আপনার সম্পর্কে চিন্তা করা দরকার:

  • প্রত্যাশিত নয় যেখানে ধারাবাহিকতা বাইট উপস্থিত হবে
  • অবিচ্ছিন্নতা বাইট প্রদর্শিত হবে যেখানে ধারাবাহিকতা বাইট প্রত্যাশিত
  • স্ট্রিংয়ের শেষে অসম্পূর্ণ অক্ষর ('ধারাবাহিকতা বাইট প্রত্যাশিত' এর প্রকরণ)
  • সর্বনিম্ন ক্রম
  • ইউটিএফ -16 সারোগেটস

বৈধ ইউটিএফ -8 এ, বাইটস 0xF5..0xFF ঘটতে পারে না।

সর্বনিম্ন ক্রম

কিছু চরিত্রের জন্য একাধিক সম্ভাব্য উপস্থাপনা রয়েছে। উদাহরণস্বরূপ, ইউনিকোড অক্ষর U +0000 (ASCII NUL) প্রতিনিধিত্ব করতে পারে:

0x00
0xC0 0x80
0xE0 0x80 0x80
0xF0 0x80 0x80 0x80

তবে, ইউনিকোড স্ট্যান্ডার্ডটি পরিষ্কারভাবে জানিয়েছে যে শেষ তিনটি বিকল্প গ্রহণযোগ্য নয় কারণ সেগুলি ন্যূনতম নয়। এটি এমনটি ঘটে যে বাইটস 0xC0 এবং 0xC1 কখনই বৈধ ইউটিএফ -8 এ উপস্থিত হতে পারে না কারণ কেবলমাত্র অক্ষরগুলির দ্বারা এনকোড করা যেতে পারে 0x00..0x7F পরিসরে একক বাইট অক্ষর হিসাবে ন্যূনতমভাবে এনকোড করা হয়েছে।

ইউটিএফ -16 সারোগেটস

বেসিক মাল্টি-ল্যাঙ্গুয়াল প্লেন (বিএমপি) এর মধ্যে ইউনিকোড মান ইউ + ডি 800 - ইউ + ডিএফএফএফটি ইউটিএফ -16 সারোগেটের জন্য সংরক্ষিত এবং বৈধ ইউটিএফ -8 এ এনকোড প্রদর্শিত হতে পারে না। যদি তারা ইউটিএফ -8 এ বৈধ হয় (যা আমি জোর দিয়ে বলছি, তারা নয়) তবে সার্োগেটগুলি এনকোড করা হবে:

  • U + D800 - 0xED 0xA0 0x80 (ক্ষুদ্রতম উচ্চতর সারোগেট)
  • ইউ + ডিবিএফএফ - 0xED 0xAF 0xBF (বৃহত্তম উচ্চতর সারোগেট)
  • U + DC00 - 0xED 0xB0 0x80 (ক্ষুদ্রতম নিম্ন সারোগেট)
  • ইউ + ডিএফএফএফ - 0xED 0xBF 0xBF (বৃহত্তম নিম্ন সারোগেট)

খারাপ ডেটা

সুতরাং, আপনার বিএডি ডেটাতে এই বিভিন্ন প্রেসক্রিপশন লঙ্ঘনকারী নমুনাগুলি থাকা উচিত।

  • চালিয়ে যাওয়া বাইট প্রাথমিক বাইট মানগুলির মধ্যে একটির আগে নয়
  • মাল্টি-ক্যারেক্টার প্রাথমিক বাইটগুলি পর্যাপ্ত ধারাবাহিকতা বাইট অনুসরণ করে না
  • অ-ন্যূনতম বহু-বাইট অক্ষর
  • ইউটিএফ -16 সারোগেটস
  • অবৈধ বাইটস (0xC0, 0xC1, 0xF5..0xFF)।

নোট করুন যে একটি বাইট-অর্ডার চিহ্ন (বিওএম) ইউ + এফএফএফ, ওরফে শূন্য-প্রস্থের নন-ব্রেক স্পেস (জেডডাব্লুএনবিএসপি), ইউটিএফ -8 এ বিনা কোডবিহীন উপস্থিত হতে পারে না - বৈধ ইউটিএফ -8 এ বাইটস 0xFF এবং 0xFE অনুমোদিত নয়। একটি এনকোডেড জেডডাব্লুএনবিএসপি একটি ইউটিএফ -8 ফাইলে 0xEF 0xBB 0xBF হিসাবে উপস্থিত হতে পারে, তবে বিওএমটি ইউটিএফ -8-তে সম্পূর্ণরকম অতিরিক্ত প্রয়োজন is


ইউনিকোডে কিছু ননচার্যাকারও রয়েছে। ইউ + এফএফএফই এবং ইউ + এফএফএফএফ হ'ল এই জাতীয় দুটি ননক্র্যাক্টর (এবং প্রতিটি প্লেনের শেষ দুটি কোড পয়েন্ট, ইউ + 1FFF, ইউ + 1 এফএফএফ, ইউ + 2 এফএফএফই, ইউ + 2 এফএফএফএফ, ইউ + 10 এফএফএফই, ইউ + 10 এফএফএফএফ অন্যান্য) )। এগুলি সাধারণত ইউনিকোড ডেটাতে ডেটা এক্সচেঞ্জের জন্য উপস্থিত না হওয়া উচিত, তবে ব্যক্তিগত ব্যবহারে উপস্থিত হতে পারে। ইউনিকোডে ননচার্যাক্টরের বরং জটিল ইতিহাস সহ প্রচুর বোকা বিবরণের জন্য ইউনিকোড এফএকিউ লিঙ্কটি দেখুন। ( ধনাত্মক # 9: ননচার্যাক্টরদের সম্পর্কে স্পষ্টতা , যা জানুয়ারী 2013 এ প্রকাশিত হয়েছিল, এর শিরোনামের পরামর্শ অনুযায়ী যা করে - অ-অক্ষরগুলির অর্থ পরিষ্কার করে))


এই দুর্দান্ত তালিকার জন্য ধন্যবাদ। আমি এখন আরও বিস্তারিতভাবে এই প্রতিটি পরীক্ষা করার পরিকল্পনা করছি।
জিওনক্রস

4
অক্ষরবিহীন "UTF-8 এনকোডড ডেটাতে উপস্থিত হওয়া উচিত নয়" এই মন্তব্যটি বিভ্রান্তিকর। উন্মুক্ত ইন্টারচেঞ্জের জন্য উদ্দিষ্ট UTF-8 এনকোডযুক্ত ডেটাগুলিতে অ-অক্ষরগুলি উপস্থিত হওয়া উচিত নয় তবে তা সত্ত্বেও ইউটিএফ -8 এনকোডার / ডিকোডারদের দ্বারা গ্রহণ করা উচিত
সাইমন কিসানে

@ সিমনকিসনে: স্পষ্টতই, আমি গত জানুয়ারীতে মুক্তি পেয়েছে, যা ইতিমধ্যে # 9 এর অবস্থা থেকে বিভ্রান্ত হয়ে পড়েছিল , মনে হয় was ননচার্যাক্টারে ইউনিকোড FAQ এর পুরো বিভাগটি পড়ার মতো। তথ্যের জন্য ধন্যবাদ। (আমি এটাও নোট করব যে আমার মন্তব্যগুলি "উচিত" যা ইউনিকোড স্ট্যান্ডার্ড যা বলেছিল তার সাথে একমত) (তবে 'বলছে না'); উদ্দেশ্যটি হ'ল তারা 'ওপেন ইন্টারচেঞ্জ'-এ উপস্থিত না হওয়া উচিত তবে অভ্যন্তরীণ ব্যবহারের জন্য ব্যবহার করা যেতে পারে '।)
জোনাথন লেফলার

4
@ অ্যাড্রিয়ানমায়ার: ইউনিকোডের অধ্যায় 3 (9.0.0) স্ট্যান্ডার্ড (পিডিএফ ফাইলের পৃষ্ঠা সংখ্যা 125; পি 54) দেখুন টেবিলটি 3.6 দেখুন । আপনি কোন অন্যান্য উত্সগুলির সাথে পরামর্শ করছেন তা আমি নিশ্চিত নই, তবে আমি মনে করি আমি যা বলেছি তা সেই টেবিলের আওতায় রয়েছে।
জোনাথন লেফলার

@ জোনাথনলফলার আপনি 100% সঠিক, রেফারেন্সের জন্য আপনাকে ধন্যবাদ।
অ্যাড্রিয়ান মাইরে

17

হোমগ্লাইফসের কোনও পাঠ্যকে সত্যই অদ্ভুত UTF8 স্ট্রিংয়ে রূপান্তর করতে আপনি জেফ্রি বার্গামিনি থেকে এই সহজ অনলাইন সরঞ্জামটি ব্যবহার করতে পারেন ।

একটি সাধারণ

আপনি এখানে কাজ করতে পারবেন না, আপনার জন্য সবচেয়ে ভাল কাজ করতে পারেন, আপনি শ্রম এবং ম্যাগাজিনের মত কাজ করতে পারেন।

এই মত হয়ে:

Ȋṕšᶙṁ ḍỡḽǭᵳ ʂǐť ӓṁệẗ, ĉṓɲṩḙċťᶒțûɾ ấɖḯƥĭṩčįɳġ ḝłįʈ, șếᶑ ᶁⱺ ẽḭŭŝḿꝋď ṫĕᶆᶈṓɍ ỉñḉīḑȋᵭṵńť ṷŧ ḹẩḇőꝛế éȶ đꝍꞎôꝛȇ ᵯáꞡᶇā ąⱡîɋṹẵ ąⱡîɋṹẵ


6
আমি মনে করি এটি কারণ এটি সত্যই ইউটিএফ 8 পরীক্ষা করতে সহায়তা করে না: আপনি কেসগুলির সম্পূর্ণ সেটের কাছাকাছি কিছু পান না, কোনও "খারাপ" কেস নেই এবং ফর্ম্যাটটি পরীক্ষার জন্য সত্যই সহায়ক নয়। এটি অদ্ভুত চরিত্রগুলি পাওয়ার একমাত্র উপায়।
অ্যাড্রিয়ান মায়ার

আপনি কি এটা চেষ্টা করেছেন? যে জেনারেটর মজা জন্য নয়। এটি আপনাকে সম্পূর্ণ ইউটিএফ -8 পরিসীমা থেকে অক্ষর দেয় এবং চরিত্রগুলি আপনাকে কী সমস্যা দিচ্ছে তা 'দেখতে' পারবেন এমন প্রকৃত চরিত্রগুলির সাথে অদ্ভুতরূপে মিল থাকার কারণে। উদাহরণস্বরূপ আমি পোস্ট করেছি এখানে 6 টি অক্ষর রয়েছে যা আমার আইফোনটি বক্সিত প্রশ্ন চিহ্ন হিসাবে রেন্ডার করে।
শেবুকা

4
আইএমও, এই বিস্ময়কর সরঞ্জামটি একটি ব্যাখ্যার জন্য খুব সুন্দর "সংযোজনিত মান" হতে পারে তবে এটি নিজেই উত্তর হিসাবে ফিট করে না (এছাড়াও পৃষ্ঠাটি বন্ধ হয়ে যেতে পারে বলেও)। যাইহোক, আমি সম্মতি দিচ্ছি যে ব্যাখ্যা ছাড়াই একটি -1 খুব গঠনমূলক নয়।
এড্রিয়ান মায়ার

সুতরাং এটি "ভাল, ভাল utf-8 উদাহরণ পরীক্ষা ডেটা" ... এটি সম্পর্কিত হিসাবে একটি উত্সাহ মূল্য, আইএমও
রোন্ডো

5

উইকিপিডিয়ায় ইউটিএফ -8 নিবন্ধটিতে বাইট সিকোয়েন্সগুলি বৈধ / অবৈধ কী তা সম্পর্কে একটি ভাল সারাংশ রয়েছে। আরও একটি নিবন্ধ যা পড়ার মতো তা হ'ল ডাব্লু 3 সি আই 18 এন এফএকিউ: বহুভাষিক ফর্ম


2

আমার মাথার উপরে:

0xff এবং 0xfe

একক উচ্চ-বিট বাইট

লো-বাইট চরিত্রগুলির একাধিক বাইট উপস্থাপনা - প্রারম্ভিক চেকগুলি নালকে পাচারের একটি ভাল উপায়

বাইট-অর্ডার চিহ্নগুলি - আপনি কি সেগুলি উপেক্ষা করছেন?

এনএফসি বনাম এনএফডি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.