যদিও কেউ প্রকৃতপক্ষে কিছু এনকোডিং চয়ন করতে পারে (এবং অন্য কোনও সাইটে যাওয়ার সময় এটি অক্ষম করতে ভুলবেন না), আসলে ওয়েবসাইটটি সঠিকভাবে এটি নির্দিষ্ট করা উচিত। হয় সার্ভার বা ওয়েব পৃষ্ঠাগুলি নিজেই কিছু নির্দিষ্ট করে দেবে, অন্যথায় সমস্ত ব্রাউজারই কিছুটা ভাল অনুমান করতে পারে। এবং অবশ্যই, যদি কোনও এনকোডিং নির্দিষ্ট করা থাকে, তবে এইচটিএমএল ডকুমেন্টে অবশ্যই সেই এনকোডিংটি ব্যবহার করা উচিত। প্রশ্ন থেকে ওয়েবসাইটের জন্য এতটা নয় , নীচে দেখানো হয়েছে:
ওয়েব সার্ভারে কিছু নির্দিষ্ট করা হয়েছে কিনা তা দেখার জন্য তথাকথিত শিরোনামগুলির দিকে নজর দেওয়া দরকার । আপনি যে শিরোনাম পাবেন তা প্রকাশ করার জন্য ওয়েব-sniffer.net থেকে অনলাইন পরিষেবাটি ব্যবহার করুন :
HTTP / 1.1 200 ঠিক আছে
তারিখ: সোমবার, 17 আগস্ট 2009 17:47:03 GMT
সার্ভার: অ্যাপাচি
শেষবার সংশোধিত: সোমবার, 27 নভেম্বর 2006 23:38:49 GMT
ইটাগ: "758b0606-1a316-4234309151440"
স্বীকৃতি-রেঞ্জ: বাইট
সামগ্রী-দৈর্ঘ্য: 107286
সংযোগ: বন্ধ
সামগ্রী-প্রকার: পাঠ্য / এইচটিএমএল; চরসেট = utf-8 (বিওএম ইউটিএফ -16, লিট-এন্ডিয়ান)
শেষ লাইনটি কিছুটা অদ্ভুত বলে মনে হচ্ছে: সার্ভারটি ইউটিএফ -8 এবং ইউটিএফ -16 উভয়ই কীভাবে দাবি করতে পারে? আইএএনএতে নিবন্ধিতদের মধ্যেcharset
একটির মান হ'ল (সুতরাং উদাহরণস্বরূপ, কোনও মন্তব্য ছাড়াই ইউটিএফ -8)। তবে, অনলাইন সার্ভিসের চেয়ে ওয়্যারশার্ক প্যাকেট স্নিফার ব্যবহার করে প্রকাশিত হয় যে টেক্সটটি (বিওএম ইউটিএফ -১,, লিট-এন্ডিয়ান) আসলে অনলাইন সার্ভারের দ্বারা প্রাপ্ত একটি মন্তব্য, ওয়েব সার্ভারের দ্বারা প্রেরিত নয়।
সুতরাং: ওয়েব সার্ভার দাবি করেছে যে এটি আমাদের একটি ইউটিএফ -8 এনকোডড এইচটিএমএল নথি প্রেরণ করবে।
যাইহোক, এইচটিএমএল ডকুমেন্ট যা অনুসরণ করে তা ভুল (পঠনযোগ্যতার জন্য সম্পাদিত):
ÿþ <! ডক্টইপিইএইচটিএমএল পাবলিক "- // ডাব্লু 3 সি // ডিটিডি এইচটিএমএল 4.01 ট্রানজিশনাল // এএন">
<HTML>
<Head> -এর
<শিরোনাম> পাঠ 5 </title>
<মেটা http-برابر = "সামগ্রী-প্রকার" সামগ্রী = "পাঠ্য / এইচটিএমএল; চরসেট = utf-8">
<লিঙ্ক href = "main.css" rel = "স্টাইলশিট" টাইপ = "পাঠ্য / সিএসএস">
</ Head> এর
...
উপরে, সামগ্রীর ধরণ নির্দিষ্ট করে রেখাটি প্রথমটির মধ্যে উপস্থিত হওয়া উচিত <head>
কারণ অন্যথায় ব্রাউজারটি কীভাবে বিশেষ অক্ষরগুলি পরিচালনা করতে পারে তা জানত না <title>
। আরও গুরুত্বপূর্ণ, প্রথম দুটি বিজোড় অক্ষর, ÿþ
আসলে হেক্সাডেসিমাল কোডগুলি এফএফ এবং এফই, যা ইতিমধ্যে উল্লিখিত অনলাইন পরিষেবাটির মতো, ইউটিএফ -16, লিট-এন্ডিয়ান এর বাইট-অর্ডার চিহ্ন ।
সুতরাং: ওয়েব সার্ভারটি ইউটিএফ -8 প্রেরণ করার প্রতিশ্রুতি দিয়েছে কিন্তু তারপরে এটি চিহ্নিতকারীদের প্রেরণ করেছে যা ইউটিএফ -16 এলই নির্দেশ করে। এরপরে, এইচটিএমএল নথিতে এটি আবার ইউটিএফ -8 ব্যবহার করার দাবি করেছে।
প্রকৃতপক্ষে, ওয়্যারশার্ক দেখায় যে আসল এইচটিএমএল ডকুমেন্টটি ইউটিএফ -16 এনকোডযুক্ত। এর দ্বারা বোঝা যায় যে প্রতিটি চরিত্রকে কমপক্ষে দুটি বাইট (অক্টেটস) ব্যবহার করে প্রেরণ করা হয়। 6 টি অক্ষরের মতো <html>
12 হেক্সাডেসিমেল বাইট হিসাবে প্রেরণ করা হয় 3C 00 68 00 74 00 6D 00 6C 00 3E 00
। তবে, এই ওয়েব সাইটটি খুব ভাল প্লেইন এএসসিআইআই হতে পারে, কারণ এটি তেমন কোনও এএসসিআইআই অক্ষর ব্যবহার করে বলে মনে হয় না । পরিবর্তে, এইচটিএমএল উত্স সংখ্যাসূচক অক্ষর রেফারেন্স ( এনসিআরএস ) পূর্ণ, যেমন:
यह दिल्ली
शहर है।
উপরোক্ত ব্রাউজারটি এটি দিল্লি শহর হিসাবে প্রদর্শন করে। তবে, এনসিআর এবং ইউটিএফ -16 ব্যবহারের কারণে একক অক্ষর + ( ইউনিকোড ইউ + 092 এফ ) এর জন্য প্রায় 14 বাইট ইন প্রয়োজন 26 00 23 00 32 00 33 00 35 00 31 00 3B 00
, কারণ এটি এনসিআর ব্যবহার করে রচিত হয় य
যখন এনসিআরের নিজেই AS এএসসিআইআই অক্ষর ইউটিএফ -16 ব্যবহার করে এনকোডেড থাকে । এনসিআর ব্যবহার না করার সময়, ইউটিএফ -8 এ এই একক জন্য 3 বাইট ( E0 A4 AF
) এবং ইউটিএফ -16 দুটি বাইট ( 09 2F
) লাগবে require
এই টিএমএল উত্সের জন্য ইউটিএফ -16 ব্যবহার করে মোট ব্যান্ডউইথের অপচয় হয় এবং সার্ভারটি কোনও সংক্ষেপণও ব্যবহার করে না।