কেন @charset "ইউটিএফ -8" নির্দিষ্ট করুন; আপনার সিএসএস ফাইলে?


173

আমি এই নির্দেশটি আমার কাছে ফিরিয়ে দেওয়া হয়েছে এমন অনেকগুলি সিএসএস ফাইলের প্রথম লাইন হিসাবে দেখছি:

@charset "UTF-8";

এটি কী করে এবং এটি কি নিয়ম-বিধি প্রয়োজনীয়?

এছাড়াও, আমি যদি এই "মেটা" উপাদানটিতে এই মেটা ট্যাগটি অন্তর্ভুক্ত করি তবে এটি কি আমার সিএসএস ফাইলের মধ্যে উপস্থিত থাকার প্রয়োজনীয়তাটি দূর করবে?

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

উত্তর:


123

এটি ব্রাউজারকে ইউএসএফ -8 হিসাবে সিএসএস ফাইলটি পড়তে বলে। আপনার সিএসএসে ইউনিকোড অক্ষর রয়েছে এবং কেবল এএসসিআইআই নয় এটি কার্যকর This

এটি মেটা ট্যাগে ব্যবহার করা ভাল, তবে কেবল সেই পৃষ্ঠাগুলির জন্য যা মেটা ট্যাগ অন্তর্ভুক্ত করে।

সিএসএস 2 এর জন্য ডাব্লু 3 সি তে সিএসএস ফাইলগুলির অক্ষর সেট রেজোলিউশনের নিয়মগুলি সম্পর্কে পড়ুন ।


7
যদি আপনি নন-ইউটিএফ -8-সাইটগুলি থেকে এই ফাইলগুলি লিঙ্ক করেন তবে এটিও গুরুত্বপূর্ণ: যেমন: ইউটিএফ -১ as হিসাবে এনকোডযুক্ত একটি জাপানি ওয়েবসাইট সিডিএন থেকে সিএসএস লোড করার চেষ্টা করলে অপঠনযোগ্য সামগ্রী পাবে যদি সিএসএস ফাইলটি এটি ঘোষণা না করে তবে এনকোডিং।
প্যারাসিটামল

147

এটি এমন প্রসঙ্গে প্রযোজ্য যেখানে এইচটিটিপি শিরোনাম বা অন্যান্য মেটা ডেটা প্রতি এনকোডিং না বলা হয়, যেমন স্থানীয় ফাইল সিস্টেম।

নিম্নলিখিত স্টাইলশিটটি কল্পনা করুন:

[rel="external"]::after
{
    content: ' ↗';
}

যদি কোনও পাঠক কোনও হার্ড ড্রাইভে ফাইল সংরক্ষণ করে এবং আপনি @charsetনিয়মটি বাদ দেন তবে বেশিরভাগ ব্রাউজারগুলি এটি ওএসের লোকেল এনকোডিংতে যেমন উইন্ডোজ -1222 পড়বে এবং একটি তীরের পরিবর্তে sert † willোকাবে।

দুর্ভাগ্যক্রমে, আপনি এই ব্যবস্থার উপর নির্ভর করতে পারবেন না কারণ সমর্থনটি বরং ... বিরল। এবং মনে রাখবেন যে নেট এ কোনও HTTP শিরোনাম সর্বদা @charsetনিয়মকে ওভাররাইড করে ।

স্টাইলশিটের অক্ষর সেট নির্ধারণের সঠিক নিয়মগুলি অগ্রাধিকারের ক্রম হয়:

  1. এইচটিটিপি চারসেট শিরোনাম।
  2. বাইট অর্ডার চিহ্ন।
  3. প্রথম @charsetনিয়ম।
  4. হল UTF-8।

শেষ নিয়মটি সবচেয়ে দুর্বল, এটি কিছু ব্রাউজারে ব্যর্থ হবে । মধ্যে অ্যাট্রিবিউট মধ্যে অপ্রচলিত এইচটিএমএল 5 । বিভিন্ন ঘোষণার মধ্যে দ্বন্দ্ব সন্ধান করুন। এগুলি ডিবাগ করা সহজ নয়।
charset<link rel='stylesheet' charset='utf-8'>

প্রস্তাবিত পঠন


আপনি কি সিএসএস ফাইলগুলি content-type:text/css;charset=utf-8শিরোনাম দিয়ে পরিবেশন করা প্রয়োজন বলে মনে করেন ?
পেসারিয়ার

1
@ পেসারিয়র হ্যাঁ, যদি এটি এইচটিএমএল ফাইলের এনকোডিং হয় (এটি হওয়া উচিত)।
ফুসিয়া

আমি বলতে চাইছি এটি ইতিমধ্যে বোঝানো হয়নি যে একটি অক্ষরবিহীন, CSS ফাইলের চরসেটটি এম্বেডিং এইচটিএমএল ফাইলের মতোই ব্যাখ্যা করা উচিত?
পেসারিয়ার

1
@ পেসারিয়র আমি লক্ষ্য করেছি যে এটি সবসময় হয় না।
ম্যাট দ্যাটিক্যাট

3

পাঠ্যযুক্ত প্রতিটি পৃষ্ঠায় সর্বদা একটি অক্ষর সেট নির্দিষ্টকরণ অন্তর্ভুক্ত করার একটি কারণ হ'ল ক্রস সাইট স্ক্রিপ্টিং দুর্বলতাগুলি এড়ানো। বেশিরভাগ ক্ষেত্রে ইউটিএফ -8 অক্ষর সেটটি HTML পৃষ্ঠাগুলি সহ পাঠ্যের জন্য সেরা পছন্দ।


2

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

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