<মেটা চরসেট = "utf-8"> বনাম <মেটা http-برابر = "বিষয়বস্তুর ধরণ">


1535

এইচটিএমএল 5 ডক্টাইপের জন্য চরসেটটি সংজ্ঞায়িত করার জন্য , আমার কোন স্বরলিপি ব্যবহার করা উচিত?

  1. ছোটগল্প ঃ

    <meta charset="utf-8" /> 
  2. লং:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

94
কনটেন্ট-টাইপ এবং এনকোডিংয়ের মতো কোনও কিছুর জন্য <মেটা> ট্যাগ ব্যবহার করা অত্যন্ত বিড়ম্বনাজনক, যেহেতু এই জিনিসগুলি না জেনে আপনি মেটা ট্যাগটির মান পেতে ফাইলটি বিশ্লেষণ করতে পারবেন না।
চিহ্নিত করুন

321
আপনি এটি না পৌঁছানো পর্যন্ত আপনি এএসসিআইআই হিসাবে পার্স করতে পারেন। এইচটিএমএল 5 পার্সিং অ্যালগরিদম এটিকে অ্যাকাউন্টে নেয়।
কুইন্টিন

41
লক্ষণীয় হওয়া উচিত যে ওয়েবটি যখন পৃষ্ঠা পরিবেশন করা হয় তখন উভয়টি পার্সিংয়ের জন্য ব্যবহৃত হয় না। পরিবর্তে, HTTP Content-Typeপ্রতিক্রিয়া শিরোনামের মধ্যে একটি ব্যবহার করা হবে। পৃষ্ঠাটি স্থানীয় ডিস্ক ফাইল সিস্টেম থেকে লোড করার সময় কেবল মেটা ট্যাগ ব্যবহার করা হয়।
বালুস সি

38
মেটা উপাদানটি HTTP- র উপরে নির্দিষ্ট শর্তে ব্যবহার করা হয় (এইচটিটিপি শিরোনামে থাকা তথ্যের অনুপস্থিতি সহ)
কোয়ান্টিন

78
এটি সত্যিই কোনও এনকোডিং নির্দিষ্ট করার জন্য যখন এটির নামকরণ করা হয়েছিল তেমনি বিদ্রূপও বটে। (চরসেটটি ইউনিকোড, এনকোডিংটি ইউটিএফ -8)
রায়ান

উত্তর:


1084

এইচটিএমএল 5 এ সেগুলি সমান। সংক্ষিপ্ততর ব্যবহার করুন, মনে রাখা এবং টাইপ করা সহজ। এটি ব্রাউজারের সামঞ্জস্যের জন্য তৈরি করা হওয়ায় ব্রাউজার সমর্থন ঠিক আছে


23
ব্রাউজার সমর্থন সম্পর্কে কি? আই 6 এ <meta charset='utf-8'>কাজ করে?
Vidime Vidas

11
আমি যতদূর জানি, হ্যাঁ
কুইন্টিন

4
গুগল কোড পৃষ্ঠাটির জন্য এখানে একটি আপডেট লিঙ্ক রয়েছে যা @ Šime বিদাস উল্লেখ করেছেন। এটি আই, 6,, এবং 8 সম্পর্কিত বলেছে, "নন-আইই ব্রাউজারগুলিতে আপনি ডকুমেন্ট.ক্যারাকটারসেট ব্যবহার করতে পারেন IE আইই-তে আপনার মনে হতে পারে আপনি ডকুমেন্ট.সেটমেন্টস বাইট্যাগনাম ('মেটা') [0] .চারসেট করতে পারেন তবে এটি কেবলমাত্র আপনার নির্দিষ্ট করা অক্ষর এনকোডিং প্রদান করে, আইই প্রকৃতপক্ষে ব্যবহৃত এনকোডিংটি নয় ""
হটশট 309

7
আমি জানি যে এই থ্রেডটি পুরানো, তবে gtmetrix.com/specify-a-character-set-early.html<meta> বর্ণিত এনকোডিংটি সেট করতে আইই 8-র লুকোহেড ডাউনলোডারকে অক্ষম করে যা আপনার পৃষ্ঠার লোড বারকে প্রভাবিত করতে পারে indicates হ্যাঁ, হ্যাঁ, আমি জানি ... আইপি 8 ফেলে দিন। @ ম্যাসাজেরোস লাজোস কয়েক বছর পরে এখানে ফিরে আসতে পারেন এবং আইই 8 কে সমর্থন করার জন্য আমাদের বলগুলিকে আবদ্ধ করতে পারেন। ;-)
এর্তুরনে

3
আজ আমার একটি সমস্যা ছিল যেখানে আইই 11 এ কোরিয়ান প্রতীক উপস্থিত ছিল না। দীর্ঘ সিনট্যাক্সের পক্ষে সংক্ষিপ্ত বাক্য গঠন ফেলে দেওয়া সমস্যার সমাধান করেছে। আমি জানি না এটি কোনও ধরণের সার্ভার কনফিগারেশনের কারণে হয়েছে কি না এটি IE11 এবং চরসেটের কোনও সমস্যা issue এটিতে সঠিক চিহ্নের সংমিশ্রণটি ব্যর্থ হয়েছিল 베라 베라
জেমস ডোনেলি

250

মেটা চরসেট ঘোষণার উভয় ফর্ম সমান এবং ব্রাউজারগুলিতে একই কাজ করা উচিত। তবে, আপনার ওয়েব ফাইলগুলি চরিত্র-সেটটিকে ইউটিএফ -8 হিসাবে ঘোষণার সময় আপনার কয়েকটি জিনিস মনে রাখতে হবে:

  1. আপনার ফাইল (গুলি) UTF-8 এনকোডিং সংরক্ষণ ছাড়া বাইট-অর্ডার চিহ্ন (BOM)।
  2. মেটা চরসেট (উপরে যেমন) ব্যবহার করে আপনার এইচটিএমএল ফাইলগুলিতে এনকোডিং ঘোষণা করুন ।
  3. আপনার ওয়েব সার্ভারটি অবশ্যই আপনার ফাইলগুলি পরিবেশন করতে হবে , সামগ্রী-প্রকারের HTTP শিরোনামে UTF-8 এনকোডিং ঘোষণা করে।

অ্যাপাচি সার্ভারগুলি ডিফল্টরূপে আইএসও -8859-1-এ ফাইল পরিবেশন করার জন্য কনফিগার করা হয়েছে, সুতরাং আপনার .htaccessফাইলে নিম্নলিখিত লাইনটি যুক্ত করতে হবে:

AddDefaultCharset UTF-8

এটি কন্টেন্ট-টাইপ প্রতিক্রিয়া শিরোনামে ইউটিএফ -8 এনকোডিং করে আপনার ফাইলগুলি পরিবেশন করতে অ্যাপাচি কনফিগার করবে, তবে আপনার ফাইলগুলি অবশ্যই শুরু করতে ইউটিএফ -8 (বিওএম ছাড়াই) সংরক্ষণ করতে হবে।

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

আরো উপর উইকিপিডিয়া এ বাইট অর্ডার মার্ক (BOM)


20
@ কোডবয় আমি আপনার উত্তরটি সংশোধন করে বলব "আপনার বিএমও ছাড়াই সাশ্রয় করা উচিত ..."। নিম্নলিখিত পৃষ্ঠায় বলা হয়েছে "... বিওএম বাদ দেওয়া আন্তঃব্যবহারের জন্য সাধারণত সর্বোত্তম ..." এটি একটি সর্বোত্তম অনুশীলন নির্দেশ করে, তবে এটির
জোহান

3
আইআইএসে আপনি <টি বিশ্বব্যাপী ফাইলEncoding = "utf-8" প্রতিক্রিয়া এনকোডিং = "utf-8" /> ওয়েব.কনফিগের সাথে HTTP শিরোনামে চরসেট সেট করতে পারেন - এটি <system.web>
ক্রিস মোসচিনি

3
আমি যেমন জিনিসগুলি বুঝতে পারি, আপনি যদি বিওএম ছাড়াই আমাদের সাথে সঞ্চয় করেন তবে তা সমস্তই বিবেচ্য নয়।
ডেভিড 天宇 ওয়াং

3
আপনি কেন বলছেন ইউটিএফ -8 এইচটিএমএল কোনও বিওএম ছাড়াই হওয়া উচিত। একটি বিওএম থাকার ভাল কাজ করা উচিত। এছাড়াও, আপনার প্রয়োজন নেই metaএবং একটি HTTP শিরোনাম। আপনার কেবলমাত্র একটি বিওএম, metaবা এইচটিটিপি শিরোনাম প্রয়োজন।
hsivonen

5
Summing up: don't use BOM for UTF-8আমি এর সাথে একমত হতে পারি না ইউটিএফ -8 এ থাকা বিওএমটি এনকোডিংয়ের ধরণের সংকেত দেওয়ার জন্য খুব দরকারী। অন্যথায় আমাদের অনুমান করতে হবে, বা মেটা ট্যাগগুলির মতো জিনিসগুলি ব্যবহার করা উচিত যা এই প্রশ্নটি উল্লেখ করে। বিওএম সম্পর্কে দুর্দান্ত জিনিসটি হ'ল এটি ইউনিকোডের একটি অংশ এবং এটি এইচটিএমএল নয়, ইউনিকোডে এনকোড করা সমস্ত ডেটাগুলির জন্য ব্যবহার করা যেতে পারে। আমাদের যা করা উচিত তা হ'ল সর্বত্র বিওএম ব্যবহার করা, উত্তরাধিকারী সফ্টওয়্যারটি এতে ফুটিয়ে তোলা উচিত , সেই বাগগুলি প্রতিবেদন করুন এবং সেগুলি ঠিক করুন।
স্টিজন ডি উইট

82

সংক্ষিপ্তটির সাথে যাওয়ার আরেকটি কারণ হ'ল এটি অন্যান্য উদাহরণগুলির সাথে মেলে যেখানে আপনি মার্কআপে একটি অক্ষর সেট নির্দিষ্ট করতে পারেন। উদাহরণ স্বরূপ:

<script type="javascript" charset="UTF-8" src="/script.js"></script>

<p><a charset="UTF-8" href="http://example.com/">Example Site</a></p>

ধারাবাহিকতা ত্রুটিগুলি হ্রাস করতে এবং কোডকে আরও পাঠযোগ্য।

লক্ষ করুন যে চরসেট বৈশিষ্ট্যটি কেস-সংবেদনশীল। আপনি ইউটিএফ -8 বা ইউটিএফ -8 ব্যবহার করতে পারেন তবে ইউটিএফ -8 আরও পরিষ্কার, আরও পাঠযোগ্য, আরও নির্ভুল।

এছাড়াও, মেটা চরসেট বৈশিষ্ট্য বা পৃষ্ঠা শিরোনামে ইউটিএফ -8 ব্যতীত অন্য কোনও মান ব্যবহার করার একেবারেই কোনও কারণ নেই। ইউটিএফ -8 হ'ল HTML ডকুমেন্টগুলির জন্য 1999 সালে HTML4 সাল থেকে ডিফল্ট এনকোডিং এবং আধুনিক ওয়েব পৃষ্ঠাগুলি তৈরি করার একমাত্র ব্যবহারিক উপায়।

এছাড়াও আপনাকে ইউটিএফ -8 এ এইচটিএমএল সত্তা ব্যবহার করা উচিত নয়। কপিরাইট প্রতীকের মতো অক্ষরগুলি সরাসরি টাইপ করা উচিত। আপনার কেবলমাত্র সত্ত্বাগুলি ব্যবহার করা উচিত তা হ'ল 5 টি সংরক্ষিত মার্কআপ অক্ষরের জন্য: কম, বৃহত্তর, অ্যাম্পারস্যান্ড, প্রাইম, ডাবল প্রাইম। সত্তাগুলির একটি HTML পার্সার প্রয়োজন, যা আপনি সর্বদা এগিয়ে চলতে ব্যবহার করতে চান না, তারা ত্রুটিগুলি প্রবর্তন করে, আপনার কোডটি কম পঠনযোগ্য করে তুলবে, আপনার ফাইলের আকার বাড়িয়ে তুলবে এবং কখনও কখনও আপনি কোন সত্তা ব্যবহার করেছিলেন তার উপর নির্ভর করে বিভিন্ন ব্রাউজারগুলিতে ভুলভাবে ডিকোড করুন। কীভাবে কপিরাইট, ট্রেডমার্ক, ওপেন কোট, ক্লোজ কোট, অ্যাস্টোস্ট্রোফ, এম ড্যাশ, এন ড্যাশ, বুলেট, ইউরো এবং অন্য কোনও অক্ষর আপনার কন্টেন্টের মধ্যে টাইপ / সন্নিবেশ করা শিখুন এবং আপনার কোডে সেই প্রকৃত অক্ষরগুলি ব্যবহার করুন। ম্যাকের একটি চরিত্র প্রদর্শক রয়েছে যা আপনি কীবোর্ড সিস্টেম পছন্দটিতে চালু করতে পারেন, এবং আপনি প্রয়োজনীয় অক্ষরগুলি সন্ধান এবং তারপরে এবং ড্রপ করতে পারেন বা কোন কী কী টাইপ করতে হবে তা দেখতে ম্যাচিং কীবোর্ড ভিউয়ারটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, ট্রেডমার্ক হ'ল বিকল্প + 2। ইউটিএফ -8 এ প্রতিটি লিখিত মানব ভাষা থেকে সমস্ত অক্ষর এবং চিহ্ন রয়েছে। সুতরাং ব্যবহারের জন্য কোনও অজুহাত নেই - এর পরিবর্তে একটি এম ড্যাশ। বিরামচিহ্ন এবং টাইপোগ্রাফির নিয়মগুলি শেখাও খারাপ ধারণা নয় ... উদাহরণস্বরূপ, জেনে যে কোনও সময়কাল বাইরে নয়, একটি ঘনিষ্ঠ উদ্ধৃতিতে চলে যায়।

কন্টেন্ট-টাইপ এবং এনকোডিংয়ের মতো কোনও কিছুর জন্য ট্যাগ ব্যবহার করা অত্যন্ত বিদ্রূপজনক, যেহেতু things জিনিসগুলি না জেনে আপনি মেটা ট্যাগটির মান পাওয়ার জন্য ফাইলটি বিশ্লেষণ করতে পারবেন না।

না, এটা সত্য নয়। ব্রাউজারটি ইউটিএফ -8 বা আইএসও -8859-1 হয় ব্রাউজারের ডিফল্ট এনকোডিং হিসাবে ফাইলটি বিশ্লেষণ শুরু করে। যেহেতু ইউএস-এএসসিআইআই আইএসও -8859-1 এবং ইউটিএফ -8 উভয়েরই উপসেট , তাই ব্রাউজারটি উভয় উপায়েই ঠিকঠাক পড়তে পারে ... এটি একই। ব্রাউজারটি মেটা চরসেট ট্যাগের মুখোমুখি হলে, ব্রাউজারটি ইতিমধ্যে যা ব্যবহার করছে তার থেকে যদি এনকোডিং আলাদা হয় তবে ব্রাউজারটি নির্দিষ্ট এনকোডিংয়ে পৃষ্ঠাটি পুনরায় লোড করে। সে কারণেই আমরা মেটা চরসেট ট্যাগ শীর্ষে রেখেছি, মাথার ট্যাগের ঠিক পরে, অন্য কোনও কিছুর আগে, এমনকি শিরোনাম। এইভাবে আপনি আপনার শিরোনামে ইউটিএফ -8 অক্ষর ব্যবহার করতে পারেন।

আপনাকে অবশ্যই আপনার ফাইল (গুলি) বিওএম ছাড়াই ইউটিএফ -8 এনকোডিংয়ে সংরক্ষণ করতে হবে

এটি কঠোরভাবে সত্য নয়। আপনার ডকুমেন্টে যদি কেবলমাত্র মার্কিন-এএসসিআইআই অক্ষর থাকে তবে আপনি এটিকে ইউএস-এএসসিআইআই হিসাবে সংরক্ষণ করতে এবং এটি ইউটিএফ -8 হিসাবে পরিবেশন করতে পারেন, কারণ এটি একটি উপসেট। তবে যদি ইউনিকোডের অক্ষর থাকে তবে আপনি সঠিক, আপনাকে অবশ্যই বিওএম ছাড়াই ইউটিএফ -8 হিসাবে সংরক্ষণ করতে হবে।

আপনি যদি এমন কোনও ভাল পাঠ্য সম্পাদক চান যা আপনার ফাইলগুলি ইউটিএফ -8 এ সংরক্ষণ করবে তবে আমি নোটপ্যাড ++ সুপারিশ করব।

ম্যাকের জন্য, ম্যাক অ্যাপ স্টোর থেকে বেয়ার বোনস টেক্সটর্যাংলার (ফ্রি) ব্যবহার করুন বা বেয়ার বোনস বিবিইডিট যা ম্যাক অ্যাপ স্টোরে। 39.99 ডলারে রয়েছে ... এমন দুর্দান্ত সরঞ্জামের জন্য খুব সস্তা। উভয় অ্যাপে নথির উইন্ডোর নীচে একটি মেনু রয়েছে যেখানে আপনি নথির এনকোডিং নির্দিষ্ট করেছেন এবং আপনি সহজেই "ইউটিএফ -8 ন বিওএম" চয়ন করতে পারেন। এবং অবশ্যই আপনি পছন্দগুলিতে নতুন দস্তাবেজের জন্য এটি ডিফল্ট হিসাবে সেট করতে পারেন।

তবে যদি আপনার ওয়েবসভারটি HTTP শিরোনামে এনকোডিং পরিবেশন করে, যা প্রস্তাবিত হয়, উভয় [মেটা ট্যাগ] অকারণে।

এটা ভুল। অবশ্যই আপনাকে এইচটিটিপি শিরোনামে এনকোডিংটি সেট করা উচিত, তবে আপনার এটি মেটা চরসেট বৈশিষ্ট্যেও সেট করা উচিত যাতে ব্রাউজার থেকে স্থানীয় স্টোরেজে পৃষ্ঠাটি ব্যবহারকারী দ্বারা সংরক্ষণ করা যায় এবং পরে আবার খোলা যায়, সেই ক্ষেত্রে উপস্থিত থাকা এনকোডিংয়ের একমাত্র ইঙ্গিতটি হ'ল মেটা চরসেট বৈশিষ্ট্য। আপনার একই কারণের জন্য একটি বেস ট্যাগও সেট করা উচিত ... সার্ভারে, বেস ট্যাগটি অপ্রয়োজনীয়, তবে স্থানীয় স্টোরেজ থেকে খোলার সময়, বেস ট্যাগটি পৃষ্ঠাটি সার্ভারে যেমন এমনভাবে কাজ করতে সক্ষম করে, সমস্তগুলি দিয়ে জায়গায় সম্পত্তি এবং তাই, কোন ভাঙা লিঙ্ক।

অ্যাডডেফল্টচরসেট ইউটিএফ -8

অথবা আপনি ঠিক তেমন নির্দিষ্ট ফাইলের এনকোডিং পরিবর্তন করতে পারেন:

AddType text/html;charset=utf-8 html

ইউটিএফ -8 এবং ল্যাটিন -1 (আইএসও -8859-1) উভয় ফাইলে পরিবেশন করার জন্য একটি টিপ হল ইউটিএফ -8 ফাইলগুলিকে একটি "পাঠ্য" এক্সটেনশান এবং ল্যাটিন -1 ফাইলগুলিকে "টিএসএসটি প্রদান করা।"

AddType text/plain;charset=iso-8859-1 txt
AddType text/plain;charset=utf-8 text

অবশেষে, ইউনিক্স লাইন সমাপ্তির সাথে আপনার নথি সংরক্ষণের কথা বিবেচনা করুন, লিগ্যাসি ডস বা (ক্লাসিক) ম্যাক লাইন সমাপ্তি নয়, যা সহায়তা করে না এবং আঘাত করতে পারে, বিশেষত এই লিগ্যাসি সিস্টেমগুলি থেকে আমরা আরও এবং আরও এগিয়ে যাওয়ার কারণে লাইনটি নিচে নামায়। বৈধ এইচটিএমএল 5, ইউটিএফ -8 এনকোডিং এবং ইউনিক্স লাইন সমাপ্তি সহ একটি এইচটিএমএল দস্তাবেজ একটি কাজ ভালভাবে সম্পন্ন হয়েছে। আপনি ভাগ এবং সম্পাদনা এবং স্টোর এবং পড়তে এবং পুনরুদ্ধার করতে এবং অনেক প্রসঙ্গে সেই দস্তাবেজের উপর নির্ভর করতে পারেন। এটি লিঙ্গুয়া ফ্র্যাঙ্কা। এটি ডিজিটাল পেপার।


20
"আপনার ডকুমেন্টে যদি কেবল আইএসও -8859-1 অক্ষর থাকে তবে আপনি এটিকে আইএসও -8859-1 হিসাবে সংরক্ষণ করতে এবং এটি ইউটিএফ -8 হিসাবে পরিবেশন করতে পারেন, কারণ এটি একটি উপসেট" - ভুল। আপনি "আইএসও -8859-1" কে "ইউএস-এএসসিআইআই" তে পরিবর্তন করলে এটি সঠিক হবে। ইউএস-এএসসিআইআইটি ইউটিএফ -8 এর সাথে সামঞ্জস্যপূর্ণ কারণ এটি একটি উপসেট, আইএসও -8859-1 নয়। ISO-8859-1 (নন-ASCII অক্ষরযুক্ত) টি ইউটিএফ -8 এ রূপান্তর করতে আপনাকে অ-ASCII অক্ষরগুলি এনকোড করতে হবে। আইএসও -8859-1-এর কোড পয়েন্টগুলি ইউনিকোডে রয়েছে তবে ইউটিএফ -8 ইউএস-এএসসিআইআই-র বাইরের কোডগুলি আইএসও -8859-1-তে আলাদাভাবে এনকোড করে।
থোমাস্রুটার

2
এইচটিএমএল সত্তা সম্পর্কে আপনার বক্তব্য ভাল। অতীতে, আমি সত্ত্বাগুলি কেবলমাত্র এটির জন্য ব্যবহার করেছি যে তারা বিভিন্ন সিস্টেমে সংরক্ষণ করার পরে এবং / অথবা বিভিন্ন সম্পাদকগুলিতে খোলার পরে তাদের ইউটিএফ -8 অক্ষরে রূপান্তরিত হয়েছিল। তবে এটি লক্ষণীয় যে, অ-ব্রেকিং স্পেসগুলি (& nbsp;) বিভ্রান্তিকর ফলাফল আনতে পারে যেহেতু আপনি সাধারণত এগুলি আপনার সম্পাদকটিতে দেখতে পাবেন না তাই স্পষ্টতার স্বার্থে (আমার অভিজ্ঞতাতে) সত্তা হিসাবে রাখাই ভাল।
স্কুইডবে

"You should also set a base tag..."এখানে বর্ণিত সতর্কতার সাথে আসা উচিত ।
মাফুবা

আপনি এইচএনএমএল সত্ত্বাকে পছন্দ করতে পারেন এমন আরও একটি কারণ হ'ল যদি আপনি আয়নিকনের মতো কিছু ব্যবহার করেন । আমি বরং &#xf101;ডিফল্ট গ্লাইফ বা কিছু অদ্ভুত চরিত্র যা আমি চিনতে পারি না তার চেয়ে দেখতে চাই ।
ড্যানিয়েল লুবারভ

30

<meta charset="utf-8"> এইচটিএমএল 5 / এর সাথে প্রবর্তিত হয়েছিল।

ডকুমেন্টেশনে উল্লিখিত হিসাবে, উভয়ই বৈধ। তবে <meta charset="utf-8">এটি কেবল HTML5 এর জন্য (এবং টাইপ / মনে রাখা সহজ)।

নির্ধারিত সময়ে, পুরানো শৈলী অদূর ভবিষ্যতে অবচয় হয়ে যেতে বাধ্য । আমি নতুন বিদ্ধ চাই <meta charset="utf-8">

কেবল একটি উপায় আছে, কিন্তু আছে। প্রযুক্তির ক্ষেত্রে, এটি পুরানোটি পর্যায়ক্রমে করছে (সত্যিই, সত্যই দ্রুত)

ডকুমেন্টেশন: এইচটিএমএল মেটা চরসেট অ্যাট্রিবিউট — ডাব্লু 3 স্কুলগুলি


2
লিঙ্কটি সম্পর্কে, দয়া করে মেটা.স্ট্যাকওভারফ্লো.com
প্রশ্নগুলি /

18

অন্যান্য উত্তরগুলি প্রতিদ্বন্দ্বিতা না করার সময়, আমি নিম্নলিখিতগুলি উল্লেখ করার উপযুক্ত বলে মনে করি।

  1. "দীর্ঘ" ( http-equiv) স্বরলিপি এবং "সংক্ষিপ্ত" এক সমান, যেটি প্রথমে আসে;
  2. ওয়েব সার্ভার শিরোনাম সমস্ত <meta>ট্যাগ ওভাররাইড করবে ;
  3. বিওএম (বাইট অর্ডার চিহ্ন) সমস্ত কিছু ওভাররাইড করবে এবং অনেক ক্ষেত্রে এটি এইচটিএমএল 4 (এবং সম্ভবত অন্যান্য স্টাফগুলিকেও) প্রভাবিত করবে;
  4. আপনি যদি কোনও এনকোডিং ঘোষণা না করেন তবে আপনি সম্ভবত আপনার পাঠ্যটি "ফ্যালব্যাক পাঠ্য এনকোডিং" এ পাবেন যা আপনার ব্রাউজারটি সংজ্ঞায়িত। ফায়ারফক্সে বা ক্রোমে নয় এটি সম্পূর্ণ -8;
  5. অন্য চিহ্নগুলির অভাবে ব্রাউজারটি আপনার নথিটি এমনভাবে পড়ার চেষ্টা করবে যেন এটি এনকোডিংটি পাওয়ার জন্য এটি ASCII তে ছিল, সুতরাং আপনি কোনও অদ্ভুত এনকোডিং ব্যবহার করতে পারবেন না (যদিও বিওএম সহ ইউটিএফ -16 করা উচিত, যদিও);
  6. যদিও চশমাগুলি বলে যে এনকোডিং ঘোষণা অবশ্যই নথির প্রথম 512 বাইটের মধ্যে হওয়া উচিত, বেশিরভাগ ব্রাউজারগুলি এর চেয়ে বেশি পড়ার চেষ্টা করবে।

আপনি echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | nc -lp 4500আপনার ব্রাউজারটি চালিয়ে এবং নির্দেশ করে পরীক্ষা করতে পারেন localhost:4500। (অবশ্যই আপনি অংশগুলি পরিবর্তন করতে বা মুছতে চাইবেন The বিওএম অংশটি \xef\xbb\xbf। আপনার শেলটির এনকোডিং সম্পর্কে সতর্ক থাকুন))

দয়া করে মনে রাখবেন যে আপনি স্পষ্টভাবে এনকোডিংটি ঘোষণা করা খুব গুরুত্বপূর্ণ। ব্রাউজারগুলিকে অনুমান করা দেওয়াটি সুরক্ষা সমস্যার দিকে নিয়ে যেতে পারে।


1
ভাল পয়েন্ট, তবে আপনি কোন সুরক্ষা সমস্যাগুলি উল্লেখ করছেন তা বিশদ করতে পারেন?
আর্মফুট

1
দীর্ঘ স্বরলিপিটি সংক্ষিপ্তটিকে ওভাররাইড করা উচিত নয় - ডকুমেন্টের প্রথমটি অবশ্যই জয়ী হওয়া উচিত।
gsnedders

1
@ আরমফুট অতীতে UTF-7আমার যা মনে পড়ে তাতে সমস্যা ছিল। ওয়েবে স্নিগ্ধ করা সাধারণত খারাপ হয়, যেমন আপনি যখন কোনও চিত্র আপলোড করেন যা স্ক্রিপ্ট সামগ্রী হিসাবে স্নিফ করা থাকে।
পিএইচকে

@gsnedders ক্রোম এবং ফায়ারফক্সে পরীক্ষা করেছেন, আপনি ঠিক বলেছেন। সেই অনুযায়ী উত্তরটি সম্পাদনা করেছেন। আর্মফুট: এটি প্রায় 7 বিট এনকোডিং সম্পর্কে কিছু ছিল, ঠিক কী মনে নেই।
কাঠবিড়ালি

1
@ ক্রেইগম্যাক কিউইন নিশ্চিতভাবেই নিশ্চিত যে ব্রাউজারটি এখনও পশ্চিম ইউরোপের পশ্চিম ইউরোপের কাছে ফালব্যাক (2018 সালে) ডিফল্ট রয়েছে, তাই আমি কল্পনা করেছিলাম যে প্রতিটি অঞ্চলে প্রাক-ইউনিকোড এনকোডিং যে প্রভাবশালী ছিল তার চেয়ে এটি ডিফল্ট। ব্যবহারকারীরা ফালব্যাকটি utf-8 এ সেট করতে পারে তবে এটি কেবলমাত্র হাজার হাজার সাইটগুলিকে সমস্ত ক্রিপিং এনকোডিং প্রকাশ করে এবং এখনও পুরো জায়গায় চটকদার উচ্চ বাইট অ্যাস্কি চরিত্র হিসাবে ব্যবহার করে, তাই এটি এখনও সাধারণ নয়। মোর করুণা। ব্রাউজার বিক্রেতাদের কাছ থেকে সামান্য জবরদস্তি না করে কীভাবে এটি পরিবর্তন হতে চলেছে তা দেখতে পাচ্ছেন না এবং তারা উত্তরাধিকারের জিনিসগুলি ভাঙতে আগ্রহী নন।
brennanyoung

13

<meta charset="utf-8" />এইচটিএমএল 5 ব্যবহার করার সময় ওয়েব ব্রাউজারগুলির জন্য ব্যবহার করুন ।

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />এইচটিএমএল 4 বা এক্সএইচটিএমএল ব্যবহার করার সময় বা DOMDocumentপিএইচপি 5.3 এর মতো পুরানো ডোম পার্সারগুলির জন্য ব্যবহার করুন


2

মজিলা ফাউন্ডেশন এবং সিটপয়েন্টের উপর ভিত্তি করে কিছু সংবাদ রয়েছে

http-equiv=content-typeঅপ্রচলিত হওয়ায় এই মানটি ( ) ব্যবহার করবেন না । charset< meta> উপাদানটিতে বৈশিষ্ট্যটি পছন্দ করুন । এখানে চিত্র বর্ণনা লিখুন


ওহ, অবশেষে কিছুটা সাম্প্রতিক
আইয়্যাশ

1

কোনও ইমেলটিতে স্বাক্ষর এম্বেড করতে আমি দীর্ঘ সংস্করণটি ব্যবহার করব:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

কারণটি হ'ল বেশিরভাগ ইমেল পাঠক এইচটিএমএল 5 ব্যবহার করেন না, তাই এটি সর্বদা পুরানো এইচটিএমএল শৈলীর চেয়ে ভাল। আসলে, বিভাগগুলি + সিএসএসের চেয়ে সারণীগুলি ব্যবহার করা ভাল।

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