এইচটিএমএল এনকোডিং। কোন এনকোডিং একটি ওয়েব পৃষ্ঠা সংরক্ষণ করতে?

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

অনেকগুলি এনকোডিং রয়েছে এবং সেইজন্য, কখনও কখনও আপনি মোবাইল অ্যাপ্লিকেশনে একটি বই খোলার সময় বা একটি ওয়েবসাইটে একটি নিবন্ধ আপলোড করার সময় অদ্ভুত অক্ষর দেখতে পান এবং সেটিংসে কিছু মান পরিবর্তন করে, আপনি পরিচিত বর্ণমালা দেখতে পাবেন চোখ

Windows-1251 এনকোডিং - এটি কী, একটি ওয়েবসাইট তৈরি করার সময় এটির কী গুরুত্ব রয়েছে, কোন অক্ষরগুলি উপলব্ধ হবে এবং এটি কি আজকের সেরা সমাধান? আজকের নিবন্ধে এই সব সম্পর্কে. বরাবরের মতো, সহজ ভাষায়, যতটা সম্ভব পরিষ্কার এবং ন্যূনতম সংখ্যক পদ সহ।

একটু তত্ত্ব

কম্পিউটারে বা ইন্টারনেটে যেকোন নথি, যেমনটি আমি বলেছি, বাইনারি কোড আকারে সংরক্ষণ করা হয়। উদাহরণস্বরূপ, আপনি যদি ASCII এনকোডিং ব্যবহার করেন, তাহলে "K" অক্ষরটি 10001010 হিসাবে লেখা হবে এবং উইন্ডোজ 1251-এ এই সংখ্যার নীচে Љ চিহ্নটি লুকানো আছে। ফলস্বরূপ, যদি একটি ব্রাউজার বা প্রোগ্রাম অন্য টেবিল অ্যাক্সেস করে এবং ASCII এর পরিবর্তে Windows 1251 কোডগুলি পড়ে, পাঠক একটি প্রতীক দেখতে পাবেন যা তার কাছে সম্পূর্ণরূপে বোধগম্য নয়।

যৌক্তিক প্রশ্ন হল, কোড সহ এতগুলি টেবিল নিয়ে আসতে বিরক্ত কেন? আসল বিষয়টি হ'ল রাশিয়ান বর্ণমালার পাশাপাশি ইংরেজি, জার্মান এবং চীনাও রয়েছে। কিছু অনুমান অনুসারে, প্রায় 200,000 অক্ষর রয়েছে। যদিও, আমি জাপানিদের কথা মনে রেখে এই পরিসংখ্যানগুলিতে সত্যিই বিশ্বাস করি না।

ভুলে যাবেন না যে ক্যাপিটাল এবং ছোট হাতের অক্ষরগুলির জন্য আপনাকে নিজের কোড নিয়ে আসতে হবে, সেখানে কমা, ড্যাশ এবং আরও অনেক কিছু রয়েছে।

টেবিলে যত বেশি চিহ্ন থাকবে, তাদের প্রত্যেকের জন্য কোড তত বেশি হবে, যার মানে ডকুমেন্টের ওজন বেশি হবে।

কল্পনা করুন যদি একটি বইয়ের ওজন 4 জিবি হতো! কম্পিউটারে সমস্ত ফাঁকা স্থান লোড করতে এবং গ্রহণ করতে এটি খুব দীর্ঘ সময় নেয়। ডাউনলোড করার সিদ্ধান্ত সহজ বলে মনে হবে না।

আপনি যদি ওয়েবসাইটগুলি সম্পর্কে চিন্তা করেন তবে কী ঘটত তা ভাবতে সাধারণত ভয় লাগে। এমনকি উচ্চ-গতির ফাইবার অপটিক্সেও প্রতিটি পৃষ্ঠা খুলতে এক ঘণ্টার বেশি সময় লেগেছে! আমি মনে করি মোবাইল ফোন নিরাপদে ফেলে দেওয়া যেতে পারে। আপনি কি 4G সহ বাইরেও ব্যবহার করতে পারেন? আমি সন্দেহ করি.

এই কারণে, প্রতিটি প্রোগ্রামার এক সময়ে তার নিজস্ব প্রতীক টেবিল নিয়ে আসার চেষ্টা করেছিল। এটি ব্যবহার করা সুবিধাজনক করতে এবং ওজন সর্বোত্তম রাখতে।

মাইক্রোসফট, উদাহরণস্বরূপ, রাশিয়ান-ভাষা বিভাগের জন্য windows-1251 তৈরি করেছে। এটা, অবশ্যই, তার সুবিধা এবং অসুবিধা আছে। অন্য কোন পণ্যের মতই।

আজকাল, ইন্টারনেটের সমস্ত পৃষ্ঠার মাত্র 2% 1251-এ লেখা হয়। বেশিরভাগ ওয়েবমাস্টার UTF-8 ব্যবহার করে। কেন এমন হল?

অসুবিধা এবং সুবিধা

UTF-8, windows-1251 এর বিপরীতে, একটি সার্বজনীন এনকোডিং এতে বিভিন্ন বর্ণমালার অক্ষর রয়েছে। এমনকি UTF-128 রয়েছে, যাতে সমস্ত ভাষা রয়েছে - তেউলু, সোয়াহিলি, লাওতিয়ান, মাল্টিজ এবং আরও অনেক কিছু।

UTF-8 আরও দরিদ্র, অক্ষরগুলি অনেক কম জায়গা নেয় এবং 1251-এর মতো শুধুমাত্র একটি বাইট মেমরি নেয়। UTF-এ অন্যান্য ভাষার বিরল অক্ষর বা বিশেষ অক্ষর রয়েছে। তাদের প্রতিটির ওজন 5-6 বাইট, কিন্তু নথিতে খুব কমই ব্যবহৃত হয়।

এই এনকোডিং আরও চিন্তাশীল, এবং তাই বেশিরভাগ অ্যাপ্লিকেশন এটি ডিফল্টরূপে ব্যবহার করে। অর্থাৎ, আপনি কোন এনকোডিং ব্যবহার করছেন তা যদি আপনি প্রোগ্রামটিকে না বলেন, তাহলে এটি প্রথমে UTF-8 চেক করবে।

আপনি যখন একটি ওয়েবসাইটের জন্য একটি HTML নথি তৈরি করেন, তখন আপনি ব্রাউজারকে বলেন যে রেকর্ডগুলি ডিকোড করার সময় কোন টেবিলটি দেখতে হবে৷

এটি করার জন্য, আপনাকে হেড ট্যাগে নিম্নলিখিত ডেটা সন্নিবেশ করতে হবে। “ক্যারসেট=” চিহ্নের পরে হয় UTF বা Windows আসে, নীচের উদাহরণের মতো।

<মেটা http-equiv = "কন্টেন্ট-টাইপ" বিষয়বস্তু = "text/html; charset=windows-1251">

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

আপনি যদি একটি ওয়েবসাইট তৈরি করতে আগ্রহী হন তবে আমি আপনাকে মিখাইল রুসাকভের কোর্সটি সুপারিশ করতে পারি " A থেকে Z থেকে ওয়েবসাইট তৈরি এবং প্রচার ».


এতে জাভাস্ক্রিপ্ট এবং এক্সএমএল কভার করে 256টি পাঠ রয়েছে। প্রোগ্রামিং ভাষা ছাড়াও, আপনি বুঝতে সক্ষম হবেন কিভাবে একটি সাইট নগদীকরণ করা যায়, অর্থাৎ দ্রুত এবং আরও বেশি লাভ করা যায়। কয়েকটি কোর্সের মধ্যে একটি যা আপনার প্রয়োজনীয় সমস্ত কিছু বিস্তারিতভাবে ব্যাখ্যা করে।

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

ঠিক আছে, যদি প্রশ্ন ওঠে, ইন্টারনেটে অনুসন্ধান করার দরকার নেই। সবসময় একজন দক্ষ পরামর্শদাতা থাকে।


একরকম আমি প্রসঙ্গ বন্ধ করেছিলাম. এনকোডিং-এ ফিরে আসা যাক।

স্নান ডাটাবেস

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

আপনার কাজের অভিজ্ঞতা, পরিষেবার দৈর্ঘ্য বা পরিষেবার দৈর্ঘ্য যাই হোক না কেন, অসুবিধা প্রত্যেকেরই ঘটবে। ডাটাবেসের কিছু পৃষ্ঠায় Windows 1251-এর জন্য উপলব্ধ সমস্ত অক্ষর থাকতে পারে, অন্যগুলি, উদাহরণস্বরূপ, পৃষ্ঠা টেমপ্লেটগুলিতে, একটি ভিন্ন এনকোডিংয়ে।

স্থানান্তরের প্রয়োজন না হওয়া পর্যন্ত, সবকিছুই কাজ করে এবং কাজ করে, যদিও সম্পূর্ণরূপে সঠিকভাবে নয়। কিন্তু সরে যাওয়ার পর শুরু হয় ঝামেলা। আদর্শভাবে, আপনার হয় শুধুমাত্র UTF বা Windows 1251 ব্যবহার করা উচিত, কিন্তু আসলে, এই ধরনের ত্রুটিগুলি সর্বদা প্রত্যেকের ক্ষেত্রেই ঘটে।

ডিক্রিপশন সামঞ্জস্যপূর্ণ হওয়ার জন্য, আপনাকে অবশ্যই mysql_query("SET NAMES cp1251") কোড লিখতে হবে। এই ক্ষেত্রে, একটি ভিন্ন প্রোটোকল - cp1251 ব্যবহার করে রূপান্তর করা হবে।

htaccess

আপনি যদি দৃঢ়ভাবে আপনার সাইটে 1251 ব্যবহার করার সিদ্ধান্ত নেন, তাহলে আপনার একটি htaccess ফাইল খুঁজে পাওয়া বা তৈরি করা উচিত। তিনি কনফিগারেশন সেটিংস জন্য দায়ী. সবকিছু একত্রিত হওয়ার জন্য আপনাকে এতে আরও তিনটি লাইন যোগ করতে হবে।

ডিফল্ট ভাষা ru; AddDefaultCharset windows-1251; php_value default_charset "cp1251"

ডিফল্ট ভাষা ru; AddDefaultCharset windows-1251; php_value default_charset "cp1251"

আমি এখনও দৃঢ়ভাবে সুপারিশ করছি যে আপনি UTF-8 ব্যবহার করার কথা বিবেচনা করুন। এটি আরও জনপ্রিয়, সহজ এবং সমৃদ্ধ। আপনি এখন যে সিদ্ধান্তই নিন না কেন, এটি গুরুত্বপূর্ণ যে আপনি পরে সবকিছু সংশোধন করতে পারেন। এই এনকোডিং ব্যবহার করে সাইটের একটি ইংরেজি সংস্করণ যোগ করা অনেক সহজ হবে। কিছুই ঠিক করার দরকার নেই।

সিদ্ধান্ত আপনার উপর। কোথায় শিখতে হবে তা যত তাড়াতাড়ি সম্ভব খুঁজে পেতে নিউজলেটারে সাবস্ক্রাইব করুন যাতে অন্যদের ভুলের পুনরাবৃত্তি না হয়, সেইসাথে কোন ব্লগাররা বেশি দর্শক পায়।

আবার দেখা হবে এবং আপনার প্রচেষ্টায় সৌভাগ্য কামনা করছি।

1. আমাদের একটি ফাইল আছে: Myfile.html।
2. আপনাকে এটিকে ইউনিকোডে সংরক্ষণ করতে হবে -> UTF-8 এনকোডিং। সমাধান 1.
  1. একটি পাঠ্য সম্পাদকে Myfile.html খুলুন নোটবই.
  2. "এভাবে সংরক্ষণ করুন..." নির্বাচন করুন।
  3. UTF-8 এনকোডিং নির্বাচন করুন।
  4. বাটনে ক্লিক করুন - সংরক্ষণ করুন।

সমাধান 2।
  1. একটি পাঠ্য সম্পাদকে Myfile.html খুলুন নোটপ্যাড++(একজন PSPad সম্পাদকও আছে)
  2. মেনু -> এনকোডিং।
    এখানে আমরা দেখি (নোটপ্যাড++ নিজেই নির্ধারণ করে) আমরা যে ফাইলটি খুলেছি তার এনকোডিং।
  3. পছন্দ করা BOM ছাড়াই UTF-8 এ রূপান্তর করুন(BOM - বাইট অর্ডার মার্ক)।
    (Codiroaka "UTF-8 ছাড়া BOM" পছন্দের এবং শুধুমাত্র "UTF-8" থেকে আলাদা)।
  4. মেনু -> ফাইল -> সংরক্ষণ করুন।

ব্রাউজার এনকোডিং সনাক্তকরণ

আমরা নিজেরাই ব্রাউজারকে বলি এই HTML ফাইলের জন্য কি এনকোডিং সেট করা আছে।
এটি মেটা ট্যাগ 1 ব্যবহার করে করা হয়) উপরের উদাহরণটি ব্রাউজারকে নির্দেশ দেয় যে ডাউনলোড করা HTML ফাইলটি utf-8 এনকোডিংয়ে সংরক্ষিত হয়। যদি HTML ফাইলটি windows-1251 এনকোডিং-এ সংরক্ষিত থাকে, তাহলে: 2) গুরুত্বপূর্ণ !
ফাইল ট্রান্সকোড করার সময় পরিবর্তন করতে ভুলবেন না META ট্যাগের নির্দেশাবলী প্রাসঙ্গিক হতে হবে।
যদি একটি এনকোডিং META ট্যাগে নির্দিষ্ট করা হয়, এবং ফাইলটি অন্য এনকোডিং-এ সংরক্ষিত হয়, তাহলে আমরা স্ক্রিনে "বিবেচনা" দেখতে পাব।

3) যদি META ট্যাগটিতে প্রয়োজনীয় এনকোডিং রয়েছে, কিন্তু সাইটটি এখনও "অ্যাব্রাকাডাব্রা" প্রদর্শন করে, তারপরে আপনাকে হোস্টিং (ওয়েব সার্ভার) এ সাইট সেটিংস পরীক্ষা করতে হবে।
সাধারণত হোস্টিং-এ, এনকোডিং সাইট সেটিংসে utf-8 সেট করা থাকে।
যদি হোস্টিং সেটিংস এনকোডিং windows-1251 নির্দিষ্ট করে, তাহলে আপনাকে সেটিংসটি utf-8-এ পরিবর্তন করতে হবে।

পৃষ্ঠা এনকোডিং কি, সাধারণভাবে - পৃষ্ঠা এনকোডিং কিসের জন্য - এটি ব্রাউজারকে পৃষ্ঠার বিষয়বস্তু সঠিকভাবে প্রদর্শন করতে সহায়তা করে৷ প্রচুর সংখ্যক এনকোডিং রয়েছে যা আমাদের জানার প্রয়োজন নেই। এবং স্বাভাবিকভাবেই, পৃষ্ঠা এনকোডিং নিয়ে সমস্যা হতে পারে।

আপনি অবশ্যই দেখেছেন, আপনি যখন সাইটের কিছু পৃষ্ঠায় গিয়েছিলেন, তখন সেখানে বোধগম্য চিহ্নগুলি ছিল, যেখান থেকে কিছু বোঝা অসম্ভব ছিল - জনপ্রিয়ভাবে "করাকোজিয়াব্রস" নামে পরিচিত।

পৃষ্ঠা নেভিগেশন:

    প্রকার এবং এনকোডিং এর ধরন

  1. অবশ্যই, আমরা প্রাথমিকভাবে রাশিয়ান ভাষার উপর ভিত্তি করে এনকোডিংগুলিতে আগ্রহী।
    1.

    "utf-8" একটি সার্বজনীন এনকোডিং।

    "windows-1251" হল সিরিলিক।

    এবং এখানে, অবশ্যই, আমাকে নিজের অভিজ্ঞতা সম্পর্কে কথা বলতে হবে, যা ইতিমধ্যে 10 বছর বয়সী... তাই এখানে!

    একেবারে শুরুতে, যখন আমি শুরু করেছিলাম, আমি "windows-1251" এনকোডিং দিয়ে শুরু করেছিলাম, কিন্তু এই এনকোডিংয়ের সাথে, ক্রমাগত কিছু সমস্যা দেখা দেয়, এখন এটি মনে রাখা কঠিন হবে, কিন্তু শেষ পর্যন্ত, আমি "utf-" এ স্যুইচ করেছি। 8”

  2. UTF-8 স্বরলিপি মানে কি?


  3. এবং অবশ্যই, এই "UTF-8" এনকোডিং আসলে কী বোঝায় সে সম্পর্কে আমাদের কয়েকটি লাইন লিখতে হবে:
    UTF-8 (ইংরেজি ইউনিকোড ট্রান্সফরমেশন ফরম্যাট, 8-বিট - "ইউনিকোড ট্রান্সফরমেশন ফরম্যাট, 8-বিট") একটি সাধারণ পাঠ্য এনকোডিং মান যা আপনাকে পরিবর্তনশীল সংখ্যক বাইট ব্যবহার করে ইউনিকোড অক্ষরগুলিকে আরও নিবিড়ভাবে সংরক্ষণ এবং প্রেরণ করতে দেয় (থেকে 1 থেকে 4) , এবং 7-বিট ASCII এনকোডিংয়ের সাথে সম্পূর্ণ পিছনের সামঞ্জস্য প্রদান করে।

    পৃষ্ঠায় সঠিকভাবে দেখানোর জন্য আমাদের মূলত আমাদের ডেটা প্রয়োজন...

  4. কিভাবে পৃষ্ঠা এনকোডিং নির্ধারণ করবেন?

  5. ব্রাউজার খোলার সাথে সাথে, ctrl + U বোতাম টিপুন কোড সহ একটি অতিরিক্ত পৃষ্ঠা খুলতে হবে!
  6. পৃষ্ঠা এনকোডিং কোথায়?

  7. সাধারণত এনকোডিংটি পৃষ্ঠায় একেবারে শুরুতে স্থাপন করা হয়, এখানে এনকোডিংয়ের একটি উদাহরণ রয়েছে, এখানে পৃষ্ঠা এনকোডিংটি 4 লাইনে রয়েছে। এবং এটি এর মত দেখাচ্ছে:

    যার মানে পেজটি utf-8 এনকোডিং এ তৈরি করা হয়েছে।

    এটি সবচেয়ে সাধারণ এনকোডিংগুলির মধ্যে একটি।

    অথবা সিরিলিক এনকোডিং:

  8. কিভাবে এইচটিএমএল পেজ এনকোডিং পরিবর্তন করবেন

  9. যদি এটি একটি সাধারণ শারীরিক (ফাইল) - , তাহলে আপনাকে এটিকে কিছু সম্পাদকে খুলতে হবে এবং আপনার প্রয়োজনীয় একটি দিয়ে এনকোডিং প্রতিস্থাপন করতে হবে!
    আপনার যদি ইঞ্জিন থাকে তবে কীভাবে পৃষ্ঠা এনকোডিং পরিবর্তন করবেন!? প্রতিটি ইঞ্জিনের একটি নির্দিষ্ট যুক্তি আছে। যে কোনও স্ক্রিপ্টের মতো। একটি নিয়মিত পৃষ্ঠার মতো, ইঞ্জিনের ব্লক রয়েছে যা থেকে এটি এই পৃষ্ঠাগুলিকে একত্রিত করে - আপনাকে কেবল সেই ব্লকটি খুঁজে বের করতে হবে যা ব্রাউজারে আপনার এনকোডিং প্রদর্শন করে...
  10. ভুল এনকোডিংয়ের উদাহরণ।

  11. কখনও কখনও এই এনকোডিং বিভিন্ন সমস্যার সৃষ্টি করে...

    উদাহরণস্বরূপ, কিছু হোস্টিং সাইট কেবল এই এনকোডিং সমর্থন করে না।

    ভাঙ্গা এনকোডিং সহ একটি পৃষ্ঠা দেখতে এইরকম হবে।


  12. কেন krakozyabry পাতায় প্রদর্শিত হবে!?

  13. আসলে, তথাকথিত krakozyabrs সংঘটন জন্য বিভিন্ন কারণ আছে!
    1.

    ভুল পৃষ্ঠা এনকোডিং, উদাহরণস্বরূপ, আপনি যদি এনকোডিংকে চীনাতে সেট করেন এবং সিরিলিক পাঠ্য লেখেন, তাহলে কী হবে!? ব্রাউজারটি আপনাকে কী দেখাতে হবে তা না জেনে পাগল হয়ে যাবে এবং খারাপ জিনিস দেখাবে।

    ভুল ব্রাউজার সেটিং। হয় ব্রাউজার স্বয়ংক্রিয়ভাবে পৃষ্ঠায় এই স্ট্রিংটি খুঁজে পায় না, যা পৃষ্ঠার এনকোডিং নির্দেশ করে৷

    3. সার্ভার এই এনকোডিং সমর্থন করে না!

  14. কিভাবে ভুল এনকোডিং পরিবর্তন করবেন!?

    1.

    যদি আমরা আপনার সাইটে আপনার পৃষ্ঠা সম্পর্কে কথা বলি, তাহলে আপনাকে নোটপ্যাডে আপনার পৃষ্ঠা খুলতে হবে এবং পৃষ্ঠার এনকোডিং পরিবর্তন করতে হবে। যদি সাইটটি একটি ইঞ্জিনে থাকে, তবে আপনাকে মূল পৃষ্ঠাটি খুঁজে বের করতে হবে যেখানে এনকোডিং লেখা আছে এবং এটিকে উপযুক্তটিতে পরিবর্তন করতে হবে!

    যদি ব্রাউজার এনকোডিংকে ভুলভাবে ব্যাখ্যা করে। তারপরে আপনাকে ব্রাউজারটি মোকাবেলা করতে হবে।

    3. যদি এটি একটি সার্ভার সমস্যা হয়, তাহলে আপনার .htaccess ফাইলটিতে নিম্নলিখিত শিলালিপি যোগ করে পরিবর্তন করার চেষ্টা করা উচিত:

    এই নিবন্ধে, HTML পৃষ্ঠা তৈরির জন্য এনকোডিং বেছে নেওয়ার ক্ষেত্রে আমি সমস্ত "i" (পাশাপাশি "i's") ডট করার চেষ্টা করব।

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

    অথবা ডিবাগিং পরিবেশে (উদাহরণস্বরূপ, স্থানীয় উন্নয়ন পরিবেশ "") সবকিছু ঠিক আছে, কিন্তু হোস্টিং থেকে আবার তারা, অভিশপ্ত জারজ, নির্লজ্জভাবে আমার দিকে তাকাচ্ছে।

    ইঞ্জিনের সাথে অনেক ব্যথা ছিল। হঠাৎ, কোন অজানা কারণে, দেশীয় রাশিয়ান অক্ষরগুলি পরিণত হয়...

    এখন আমরা এই বিষয়টি বিস্তারিতভাবে মোকাবেলা করব এবং আপনি স্পষ্টভাবে জানতে পারবেন এইচটিএমএল পৃষ্ঠাটি সংরক্ষণ করার জন্য কোন এনকোডিং?এবং কি যন্ত্রের মাধ্যমে.

    আমাদের পারস্পরিক বোঝাপড়াকে শক্তিশালী করতে, আসুন ধারণাটি সংজ্ঞায়িত করি এনকোডিং. তাই, এনকোডিংমেশিন কোড এবং বর্ণমালার অক্ষরের মধ্যে চিঠিপত্রের একটি টেবিল। মেশিন চিহ্নের কিছু ক্রম রয়েছে যা একটি স্মার্ট কম্পিউটার, নির্বাচিত কোড টেবিল অনুসারে, আমরা বুঝতে পারি এমন অক্ষর দিয়ে প্রতিস্থাপন করে।

    গত শতাব্দীর 90-এর দশকে (কী একটি প্রাচীনত্ব, এবং আমি এখনও দেওয়ালে 1991 সালের ক্যালেন্ডারটি মনে করি) পিসির জন্য 4টি এনকোডিং ছিল এবং ম্যাকের জন্য এটির নিজস্ব। ভাগ্যের পরিহাস হল যে এই সমস্ত এনকোডিংগুলিতে, ল্যাটিন অক্ষরগুলি একই অ্যালগরিদম ব্যবহার করে মেশিন কোডগুলির সাথে মিলিত হয়েছিল, তবে সিরিলিক বর্ণমালার বিষয়ে, প্রতিটি এনকোডিংয়ের নিজস্ব মতামত ছিল।

    এই সমস্ত বিভ্রান্তি ক্রাকোজিয়াব্রসের উপস্থিতির দিকে পরিচালিত করেছিল। উদাহরণস্বরূপ, যদি শব্দটি " প্রশ্ন", windows-1251 এনকোডিং-এ টাইপ করা, KOI8-R এনকোডিং-এ প্রদর্শন, আপনি শব্দটি পাবেন" bNOPNYA».

    ঈশ্বরকে ধন্যবাদ, 90 এর দশক আমাদের থেকে অনেক পিছিয়ে আছে এবং পাঁচটি বিভ্রান্তিকর কোডিংয়ের মধ্যে শুধুমাত্র দুটি সাধারণ কোডিং বাকি আছে। কিন্তু একজন নবীন ওয়েবমাস্টারের জন্য দুটি পাইনে হারিয়ে যাওয়ার জন্য এটি যথেষ্ট। ঠিক আছে, চিন্তা করো না, এখন আমি তোমাকে এই বন থেকে বের করে দেব!

    বর্তমানে জন্য পছন্দ এইচটিএমএল ডকুমেন্ট এনকোডিং windows-1251 এবং utf-8 এর মধ্যে অবস্থান করে। এবং এখন মনোযোগ: utf-8 অনেক ধনী, আরও শক্তিশালী এবং ভবিষ্যত এটির সাথেই রয়েছে। তাই আমরা আমাদের এইচটিএমএল ফাইল utf-8 এ সংরক্ষণ করব।

    আমি আমার কথার ন্যায্যতা দেব;) UTF-8 যেমন অক্ষর রয়েছে ↓ এবং windws-1251-এ, এই চিহ্নগুলির পরিবর্তে, এটি হল: > . এবং utf-8 এ একটি "ইউরো" চিহ্ন রয়েছে; এবং utf-8 আপনাকে একটি HTML ফাইলে জর্জিয়ান, হিব্রু, চাইনিজ, জাপানিজ ভাষায় ব্যবহৃত বিভিন্ন নির্দিষ্ট অক্ষরগুলির একটি গুচ্ছ একত্রিত করার অনুমতি দেয়; এবং আরো utf-8HTML এনকোডিং-এ- এটা ভালো আচরণের নিয়ম।

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

    এখন আসুন ফাইল ট্রান্সকোডিং টুলগুলিকে ঘনিষ্ঠভাবে দেখে নেওয়া যাক যা আমি আপনাকে ব্যবহার করার পরামর্শ দিচ্ছি, প্রিয় পাঠক৷

    HTML ফাইল এনকোডিং এর সাথে কাজ করার জন্য টুল

    প্রকৃতপক্ষে, তাদের মধ্যে শুধুমাত্র তিনটি আছে:

    • PSPad. বিনামূল্যে পাঠ্য সম্পাদক, আমার প্রিয়.
    • . আরেকটি ভাল পাঠ্য সম্পাদক এবং বিনামূল্যে।
    • ড্রিমওয়েভার। আচ্ছা, আপনি আমার কাছ থেকে Dreamweaver এর সাথে পরিচিত।

    আমরা PSPad এ কিছু HTML ফাইল লোড করি।এবং কিভাবে আমরা বুঝতে পারি যে লোড করা পরীক্ষামূলক বিষয়ের এনকোডিং কী ধরনের আছে? খুব সহজভাবে, স্ট্যাটাস বারে (নীচে) সবকিছু পরিষ্কারভাবে লেখা আছে।

    HTML ফাইল এনকোডিং windows-1251 খুলুন

    এখন, একটি নতুন HTML নথি তৈরি করার সময়, এর এনকোডিংয়ের যত্ন নেওয়া যাক।

    চলো আমার প্রিয় মেনুতে যাই PSPad. আমরা আইটেম আগ্রহী বিন্যাস. এটিতে আমরা utf-8 এনকোডিংয়ের পাশের বাক্সটি চেক করব।

    আর তাই ভবিষ্যতের ফাইলের এনকোডিং হল windows-1251

    এখন কিভাবে সম্পর্কে HTML ফাইল এনকোডিং পরিবর্তন করুন. হ্যাঁ, এটি খুব সহজ হতে দেখা যাচ্ছে:

    আপনাকে মেনু আইটেমে প্রয়োজনীয় এনকোডিং-এ ক্লিক করতে হবে বিন্যাসএবং এনকোডিং পরিবর্তন হবে। এর পরে, ফাইলটি সংরক্ষণ করুন, এটি পুনরায় কোড করা হয়, কাজটি হয়ে যায়।

    সংক্রান্ত নোটপ্যাড++সবকিছু উপরে বর্ণিত পরিস্থিতির সাথে খুব মিল। শুধুমাত্র এনকোডিংয়ের সাথে কাজ করার জন্য আপনাকে মেনু আইটেমটি ব্যবহার করতে হবে এনকোডিং।

    শুধুমাত্র পার্থক্য হল নোটপ্যাড++ এর ক্ষেত্রে, মেনু আইটেমগুলি উপস্থিত হয় যা বিশেষভাবে এনকোডিং রূপান্তরের জন্য ডিজাইন করা হয়েছে রূপান্তর করুন... (আমার মতে অপ্রয়োজনীয়, PSPad-এ সবকিছুই সহজ এবং সেই কারণেই আমি এটি ব্যবহার করি)। তদনুসারে, আপনি যদি আমাদের HTML ফাইলের এনকোডিংগুলি পরিবর্তন করতে চান তবে এইগুলির উপর আপনাকে ক্লিক করতে হবে৷

    অন্যান্য জিনিসের মধ্যে, utf-8 এ সংরক্ষণ করার সময় আমাদের একটি পছন্দ আছে: BOM ছাড়াবা BOM এর সাথে. ওয়েবমাস্টার হিসেবে আমাদের এনকোডিং ব্যবহার করতে হবে UTF-8 (কোন BOM নেই).

    উইকিপিডিয়া "BOM কী" প্রশ্নের উত্তর দেবে এটাই

    একটি টেক্সট ফাইলে ইউনিকোড উপস্থাপনা বিন্যাস নির্ধারণ করার জন্য, একটি কৌশল ব্যবহার করা হয় যেখানে অক্ষর U+FEFF (শূন্য-প্রস্থ নন-ব্রেকিং স্পেস), যাকে বাইট অর্ডার মার্ক (BOM)ও বলা হয়, পাঠ্যের শুরুতে লেখা হয়। . এই পদ্ধতিটি UTF-16LE এবং UTF-16BE-এর মধ্যে পার্থক্য করে কারণ U+FFFE অক্ষরটি বিদ্যমান নেই। এটি কখনও কখনও UTF-8 বিন্যাস উল্লেখ করতেও ব্যবহৃত হয়, যদিও বাইট অর্ডারের ধারণাটি এই বিন্যাসে প্রযোজ্য নয়।

    আপনি যদি উপরের লেখাটি 10 ​​বার পড়েন এবং আপনার মাথা স্ক্র্যাচ করেন তবে এটি পরিষ্কার হয়ে যায়: utf-8 BOM এর জন্য আমাদের প্রয়োজন নেই. উপরন্তু, আপনি যদি এনকোডিং এ php স্ক্রিপ্ট সহ একটি ফাইল সংরক্ষণ করেন BOM এর সাথে utf-8, তাহলে এটি কাজ করবে না, কারণ হ্যান্ডলার বুঝতে পারবে না যে স্ক্রিপ্ট ফাইলের শুরুতে কী ধরনের ননসেন্স লেখা আছে (আমি বলতে চাচ্ছি যে শূন্য প্রস্থ সহ নন-ব্রেকিং স্পেস)।

    ভাল, ভাল, যা বাকি আছে তা হল ঘনিষ্ঠভাবে নজর দেওয়া ড্রিমওয়েভার.

    একটি নতুন ফাইল তৈরি করার সময়, এটি কী এনকোডিং তৈরি করা হবে সেদিকে মনোযোগ দিন। এটি করার জন্য, একটি নতুন নথি তৈরি করার জন্য উইন্ডোতে ফাইল → নতুন (Ctrl+N)বোতামটি ব্যবহার করুন পছন্দসমূহ...

    এবং ডিফল্ট এনকোডিং হিসাবে কি সেট করা আছে তা দেখুন:

    Dreamweaver-এ জেনারেট করা HTML ফাইলের ডিফল্ট এনকোডিং

    Dreamweaver এ একটি খোলা HTML ফাইল ট্রান্সকোড করুনসংলাপে সম্ভব পৃষ্ঠার বৈশিষ্ট্য,যা মেনু থেকে চালু হয় পরিবর্তন করুনপৃষ্ঠার বৈশিষ্ট্য (Ctrl + J)।

    প্রয়োজনীয় এনকোডিং নির্বাচন করুন, টিপুন ঠিক আছেএবং এটিই, ট্রান্সকোডিং কাজটি সম্পন্ন হয়েছে (কিন্তু BOM এখনও অপ্রয়োজনীয়, বাক্সটি চেক করবেন না)।

    ব্রাউজার এনকোডিং সনাক্তকরণ

    সুতরাং, আমাদের এইচটিএমএল ফাইলটি আমাদের নির্বাচিত এনকোডিং-এ সংরক্ষিত হয়। এখন প্রশ্নটি দেখি: একটি প্রদত্ত HTML ফাইলে ব্যবহৃত এনকোডিং সম্পর্কে ব্রাউজার কীভাবে জানে?

    এখানে তিনটি বিকল্প আছে:

    1. আমরা নিজেরাই ব্রাউজারকে বলি এই HTML ফাইলের জন্য কি এনকোডিং সেট করা আছে।এটি মেটা ট্যাগ ব্যবহার করে করা হয়

    উপরের উদাহরণটি ব্রাউজারকে নির্দেশ দেয় যে ডাউনলোড করা এইচটিএমএল ফাইলটি এনকোডিংয়ে সংরক্ষণ করা হয় utf-8.

    যদি HTML ফাইলটি windows-1251 এনকোডিং-এ সংরক্ষিত থাকে, তাহলে:

    যাইহোক, ফাইলগুলি ট্রান্সকোড করার সময়, META ট্যাগের নির্দেশিকাগুলিকে বর্তমানগুলিতে পরিবর্তন করতে ভুলবেন না। Dreamweaver, এনকোডিং পরিবর্তন করার সময়, এটি স্বয়ংক্রিয়ভাবে করে, কিন্তু অন্যান্য টেক্সট এডিটরগুলিতে আপনাকে প্রয়োগ করা এনকোডিং এবং META ট্যাগ নির্দেশের সাথে মিলতে হবে।

    সম্পূর্ণ এইচটিএমএলটি এইরকম দেখাচ্ছে (আমি প্রশ্নটি বোঝার জন্য এটি উদ্ধৃত করছি "এনকোডিং নির্দেশিকা সহ META ট্যাগটি কোথায় নির্দেশিত?" 4র্থ লাইনে মনোযোগ দিন):

    শিরোনামহীন দস্তাবেজ ভাল, ইত্যাদি

    2. htaccess ফাইল ব্যবহার করা।কখনও কখনও সার্ভার ডাউনলোড করা HTML ফাইলগুলির জন্য হেডারগুলিকে বাধ্য করবে এবং ব্রাউজারকে ডিফল্ট এনকোডিং বলবে৷ এই ক্ষেত্রে, ব্রাউজারটি META ট্যাগের নির্দেশাবলীতে মনোযোগ দেয় না, তবে সার্ভার দ্বারা রিপোর্ট করা এনকোডিংয়ে HTML ফাইলটি প্রদর্শন করে। আপনার প্রয়োজনীয় এনকোডিংয়ে ফাইলটি ডাউনলোড করার জন্য (প্রায়শই হোস্টিং আপনাকে উইন্ডোজ-1251 এনকোডিং নির্দিষ্ট করতে বাধ্য করে), হোস্টিং ডিরেক্টরির রুটে ".htaccess" নামে একটি ফাইল তৈরি করা হয়।

    এই ফাইলটি অতিরিক্ত সার্ভার কনফিগারেশনের জন্য তৈরি। .htaccess নির্দেশাবলীর প্রভাব সমস্ত ফাইল এবং সাব-ডিরেক্টরিগুলিতে প্রযোজ্য যেগুলি ডিরেক্টরিতে অবস্থিত যেখানে আপনি .htaccess ফাইলটি সংরক্ষণ করেছেন।

    আপনি এই ফাইলটি তৈরি করতে পারেন, উদাহরণস্বরূপ, টোটাল কমান্ডারে হটকি সংমিশ্রণ টিপে Shift+F4এবং তৈরি করা ফাইলের নাম উল্লেখ করা htaccess. পরবর্তী, পাঠ্য সম্পাদক অতিরিক্ত ডিফল্ট এনকোডিং সেটিংসের জন্য নির্দেশাবলী নির্দিষ্ট করে।

    HTML ফাইলের জন্য utf-8 এনকোড করা হয়েছে htaccess-এ আপনাকে একটি লাইন লিখতে হবে:

    AddDefaultCharset UTF-8

    Windows-1251 এনকোডিং-এ HTML ফাইলের জন্য:

    AddDefaultCharsetWindows-1251

    যদি আপনার হোস্টিং ধূর্তভাবে বুদ্ধিমান হয় এবং এই নির্দেশাবলীতে মনোযোগ না দেয়, তাহলে আপনি চেষ্টা করতে পারেন:

    AddDefaultCharset বন্ধে Charset Disable

    যদি এটি কাজ না করে, তাহলে শুধু আপনার হোস্টারকে জিজ্ঞাসা করুন ডিফল্ট এনকোডিং অক্ষম করতে আপনার কি করা উচিত :)। এই সব হোস্টিং প্রদানকারীর নির্দিষ্ট সার্ভার সেটিংস উপর নির্ভর করে.

    3. পিএইচপি নির্দেশনা ডিফল্ট এনকোডিং নির্দিষ্ট করে।হোস্টিং প্রদানকারীর সার্ভারের সেটিংস থাকা সত্ত্বেও যে ফাইলটি পছন্দসই এনকোডিং-এ প্রদর্শন করা প্রয়োজন, সেখানে পিএইচপি কোড সহ একটি নির্দেশিকা একেবারে শুরুতে নির্দেশিত হয়:

    এই php কোড ব্রাউজারের ডিফল্ট এনকোডিং নির্দেশ করে একটি সার্ভার হেডার পাঠাবে। উপরের উদাহরণে, পৃষ্ঠাটি প্রদর্শন করতে utf-8 এনকোডিং ব্যবহার করা হবে।

    এই ধরনের স্ক্র্যাপ মোকাবেলা করার জন্য হোস্টিং প্রদানকারীর সার্ভার সেটিংসে সাধারণত কোন কৌশল নেই।

    আমি নোট করতে চাই যে সার্ভারটি পিএইচপি নির্দেশাবলী প্রক্রিয়া করার জন্য, এইচটিএমএল ফাইলটিতে অবশ্যই এক্সটেনশন থাকতে হবে .php(উদাহরণস্বরূপ index.php)।

    এনকোডিং সম্পর্কে আপনার কি অন্য কোন প্রশ্ন আছে? কমেন্টে লিখুন। আমাদের একবার এবং সব জন্য এই সমস্যাগুলি সমাধান করতে হবে :)

    কিভাবে সাইট এনকোডিং সেট করবেন যাতে ব্রাউজার সঠিকভাবে এটি নির্ধারণ করতে পারে, এবং আপনাকে এমন বাজে কথা না দেখায়:

    এ µРСРСРѕ

    HTML এ, ট্যাগটি এনকোডিং নির্দেশ করতে ব্যবহৃত হয়:

    রাশিয়ান ভাষার জন্য সবচেয়ে সাধারণ এনকোডিং প্রকারগুলি নথির শিরোনামে প্রেরণ করা হয়:

    Windows-1251 - সিরিলিক (উইন্ডোজ)।
    KOI8-r - সিরিলিক (KOI8-R)
    cp866 - সিরিলিক (DOS)।
    Windows-1252 - পশ্চিম ইউরোপ (উইন্ডোজ)।
    Windows-1250 - মধ্য ইউরোপ (উইন্ডোজ)।
    UTF-8 - দুই-বাইট এনকোডিং

    এখন আসুন .htaccess ফাইলের মাধ্যমে ডিফল্ট এনকোডিং নির্দিষ্ট করা দেখি (যদি এই ফাইলটি বিদ্যমান না থাকে তবে আপনাকে এটি তৈরি করতে হবে, ফাইলের নামটি একটি ডট দিয়ে শুরু হয়)

    AddDefaultCharset অ্যাপাচি ওয়েব সার্ভারে সমস্ত রেন্ডার করা পৃষ্ঠাগুলির জন্য ডিফল্ট অক্ষর টেবিল (এনকোডিং) সেট করে

    শুধু 1 লাইন যোগ করুন

    AddDefaultCharset UTF-8

    AddDefaultCharset WINDOWS-1251

    শুধু একটি লাইন, এবং ব্রাউজার ব্যবহারকারীর পছন্দ নির্বিশেষে সঠিক এনকোডিংয়ে পৃষ্ঠাটিকে উপস্থাপন করবে। সাইট এনকোডিং সব ব্রাউজার জন্য একই হবে.

    সার্ভারে একটি ফাইল আপলোড করার সময়, রিকোডিং সম্ভব। আমরা ইঙ্গিত করি যে সমস্ত প্রাপ্ত ফাইলগুলিতে উইন্ডোজ-1251 এনকোডিং থাকবে, আমরা এটির জন্য লিখব।