এইচটিএমএলে ইউনিকোড প্রতীক প্রদর্শন করা হচ্ছে


89

আমি কেবল একটি HTML পৃষ্ঠায় টিক (✔) এবং ক্রস (✘) চিহ্নগুলি প্রদর্শন করতে চাই তবে এটি কোনও বাক্স বা গোপ ✠"হিসাবে প্রদর্শিত হবে - সম্ভবত এনকোডিংয়ের সাথে কিছু করার জন্য।

আমি utf-8 দেখানোর জন্য মেটা ট্যাগটি সেট করেছি তবে স্পষ্টতই আমি কিছু মিস করছি।

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

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

উত্তর:


56

আপনার HTTP সার্ভারের শিরোনামগুলি সঠিক কিনা তা নিশ্চিত হওয়া উচিত।

বিশেষত, শিরোনাম:

Content-Type: text/html; charset=utf-8

উপস্থিত থাকতে হবে।

HTTP শিরোলেখ উপস্থিত থাকলে মেটা ট্যাগ ব্রাউজারগুলি দ্বারা উপেক্ষা করা হয়।

আপনার ফাইলটি পরিবেশনের আগে ইউটিএফ -8 হিসাবে প্রকৃতপক্ষে এনকোডড রয়েছে তা নিশ্চিত করুন, নিম্নলিখিতগুলি পরীক্ষা করে দেখুন / চেষ্টা করুন:

  • আপনার সম্পাদককে এটি ইউটিএফ -8 হিসাবে সংরক্ষণের বিষয়টি নিশ্চিত করুন।
  • আপনার এফটিপি বা কোনও ফাইল স্থানান্তর প্রোগ্রাম ফাইলের সাথে জড়িত না তা নিশ্চিত করুন।
  • এইচটিএমএল এনকোডযুক্ত সত্তা যেমন চেষ্টা করুন &#uuu;
  • সত্যিই নিশ্চিত হওয়ার জন্য, ফাইলটি হেক্সডাম্প করুন এবং চরিত্র হিসাবে দেখুন, এর জন্য এটি E2 9C 94 হওয়া উচিত।

দ্রষ্টব্য: আপনি যদি এমন একটি ইউনিকোড অক্ষর ব্যবহার করেন যার জন্য আপনার সিস্টেমটি গ্লিফটি খুঁজে পায় না (সেই অক্ষরের সাথে কোনও ফন্ট নেই), আপনার ব্রাউজারে একটি প্রশ্ন চিহ্ন বা প্রতীকের মতো কিছু ব্লক প্রদর্শন করা উচিত। তবে আপনি যদি নিজের মতো একাধিক রোমান চরিত্র দেখতে পান তবে এটি একটি এনকোডিং সমস্যাটিকে বোঝায়।


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

8
নোট করুন যে contentকোনও সিএসএস ::beforeনির্বাচকের সম্পত্তিতে একটি ইউনিকোড অক্ষর ব্যবহার করার জন্য, ব্যাকস্ল্যাশ স্বরলিপি ব্যবহার করতে হবে। যেমন: '& # 2713' এর পরিবর্তে '\ 2713'।
ফ্যাবিয়েন স্নোওয়ার্ট

18

আমি জানি একটি উত্তর ইতিমধ্যে গৃহীত হয়েছে, তবে কয়েকটি জিনিস তুলে ধরতে চেয়েছিল।

সেট করা content-typeএবং charsetস্পষ্টতই একটি ভাল অনুশীলন, এটি সার্ভারে করা আরও ভাল, কারণ এটি আপনার অ্যাপ্লিকেশন জুড়ে ধারাবাহিকতা নিশ্চিত করে।

তবে আমি UTF-8কেবল তখনই ব্যবহার করতে পারি যখন আমার অ্যাপ্লিকেশনটির ভাষা প্রচুর পরিমাণে অক্ষর ব্যবহার করে যা কেবল অক্ষরে অক্ষরে উপলব্ধ UTF-8। আপনি যদি কোনও একটিতে একটি ইউনিকোড চরিত্র বা প্রতীক দেখাতে চান তবে আপনি charsetনিজের পৃষ্ঠাটির পরিবর্তন না করেই এটি করতে পারেন ।

HTMLরেন্ডারাররা সর্বদা প্রতীকগুলি প্রদর্শন করতে সক্ষম হয়েছে যা পৃষ্ঠার এনকোডিং চরিত্রের সেট নয়, যতক্ষণ না আপনি এর মধ্যে চিহ্নটি উল্লেখ করেন numeric character reference (NCR)। অদ্ভুত লাগছে তবে সত্য।

সুতরাং, আপনার যদি htmlএকটি শিরোনাম রয়েছে যাতে এটির এনকোডিং ansiবা isoচারসেটগুলির কোনও রয়েছে বলে উল্লেখ করা হয়, আপনি দশমিকের মধ্যে, এইচটিএমএল অক্ষর রেফারেন্স ব্যবহার করে একটি চেক চিহ্ন প্রদর্শন করতে পারেন - & # 10003; বা হেক্সে - & # x2713;

সুতরাং আপনি কেন আপনার পৃষ্ঠাগুলিতে এই সমস্যার মুখোমুখি হচ্ছেন তা বোঝা সামান্য কঠিন। এনসিআর মানটি সঠিক কিনা তা আপনি পরীক্ষা করতে পারেন, এটি একটি ভাল রেফারেন্স http://www.fileformat.info/info/unicode/char/2713/index.htm


6
"তবে, আমি তখনই ইউটিএফ -8 ব্যবহার করব যখন আমার অ্যাপ্লিকেশনটির ভাষাটি কেবলমাত্র ইউটিএফ -8 অক্ষরে উপলভ্য প্রচুর অক্ষর ব্যবহার করে" কেন? স্যুইচিংয়ের অসুবিধা কী?
ডুম্বলড

4
@ ডাম্বলবাদ: খুব ভাল প্রশ্ন, আমার ধারণা আমার নিজের পক্ষপাতটি আমার উত্তরকে মেঘলাতে দিয়েছিল। আমি যা বলতে চাইছিলাম তা হ'ল যদি আপনার সম্পূর্ণ অ্যাপ্লিকেশনটি ইতিমধ্যে utf-8 নন, তবে একক পৃষ্ঠার জন্য অ্যাপ্লিকেশনটির পরিবর্তে এটি প্রয়োগ করা খুব বেশি কাজ হতে পারে। এছাড়াও, যদি আপনার প্রোগ্রামিং ভাষা এবং সামগ্রীর জন্য utf-8 বর্ণের প্রয়োজন না হয় তবে আপনি দুর্ঘটনাক্রমে একটি জাঙ্ক চরিত্রটি আটকে দিতে পারেন যা আপনার সম্পাদক ভাল হবে (যেহেতু এটি utf-8 মোডে রয়েছে) তবে কোডটি কার্যকর হওয়ার সময় ব্যর্থ হবে। এই কথাটি বলার পরে, আপনি যখন পারবেন তখন আপনার এনকোডিং এবং চর সেটটি আপডেট করুন
অক্ষয়

6

নিশ্চিত হয়ে নিন যে আপনি ফাইলটি প্রকৃতপক্ষে ইউটিএফ -8 হিসাবে সংরক্ষণ করেছেন, &#nnn;বিশেষভাবে অক্ষরের জন্য এইচটিএমএল সত্তা ( ) ব্যবহার করুন।


For এর জন্য এইচটিএমএল সত্তা বলে মনে হচ্ছে না বা আমি এটি মিস করেছি? আপনি কীভাবে ফাইলটিকে "ইউটিএফ -8" হিসাবে সংরক্ষণ করবেন এবং কীভাবে আপনি পরীক্ষা করতে পারবেন?
পিটার ক্রেগ

@ পিটার: একটি শালীন সম্পাদক ব্যবহার করে। বেশিরভাগ পাঠ্য সম্পাদকের কাছে ফাইল এনকোডিং নির্দিষ্ট করতে তাদের "হিসাবে সংরক্ষণ করুন" কথোপকথনে একটি বিকল্প রয়েছে বা তাদের মেনুতে কোথাও লুকিয়ে থাকা অন্য বিকল্প রয়েছে। ভিম fileencodingসেটিংটি ব্যবহার করে ।
কনরাড রুডলফ

9
@ পিটার, আপনি যে কোনও চরিত্রের কোড দ্বারা উল্লেখ করতে পারেন। চেষ্টা করুন & # x2714; একটি টিক জন্য।
ড্যান ডায়ার

utf-8 হিসাবে সংরক্ষণ করুন। আকর্ষণীয় ধারণা। আপনি যদি স্থির HTML পৃষ্ঠাগুলি তৈরি করে থাকেন তবে ভাল কাজ করে well তবে ... ডায়নামিক ওয়েবপেজগুলি কী? এই ইউনিকোড / ইউটিএফ -8 / প্রশস্ত চরিত্রের জিনিসগুলি আমার কাছে সত্যিই বেশ বিভ্রান্তিকর। আমার ব্যাকএন্ড কোড পার্ল এইচটিএমএল শিরোনামটি সঠিকভাবে সেট করা আছে। ডাব্লু 3 সি ইন্টারন্যাশনালাইজেশন পরীক্ষক নিশ্চিত করেছেন যে আমার কাছে ডকুমেন্টটি utf-8 এ সেট করা আছে। CaSinG কি ব্যাপার? অবশেষে, পাঠ্য ইনপুট বাক্সগুলির কী হবে? আমি এখনও গাপ! :(
জেরেট লয়েড

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

5

নিকোলাস প্রস্তাবিত থেকে ভিন্ন, metaট্যাগটি আসলে ব্রাউজারগুলির দ্বারা উপেক্ষা করা হয় না। তবে Content-Typeএইচটিটিপি শিরোনামের metaনথিতে একটি ট্যাগ উপস্থিতির চেয়ে সর্বদা প্রাধান্য থাকে ।

সুতরাং নিশ্চিত হয়ে নিন যে আপনি HTTP শিরোনামের মাধ্যমে সঠিক এনকোডিং প্রেরণ করেছেন বা এই HTTP শিরোনামটি মোটেও প্রেরণ করবেন না (প্রস্তাবিত নয়)। metaট্যাগ প্রধানত স্থানীয় কাগজপত্র কোন HTTP ট্রাফিক মাধ্যমে পাঠানো হয় একটি ফলব্যাক বিকল্প।

এইচটিএমএল সত্তা ব্যবহার করাও একদম বিবেচনা করা উচিত - এটিই আসল সমস্যাটির আশেপাশে। ওয়েব সার্ভারটি সঠিকভাবে কনফিগার করা অনেক উপদ্রব প্রতিরোধ করে।


0

আমার মনে হয় এটি কোনও ফাইলের সমস্যা, আপনি নিজের ফাইলটি ল্যাটিন -১ এর মতো 1-বাইট এনকোডিংয়ে সহজ করে দিয়েছিলেন। গুগল আপনার সম্পাদক এবং কীভাবে ফাইলগুলি utf-8 এ সেট করবেন।

আমি অবাক হয়েছি কেন এমন সম্পাদকরা কেন utf-8 এ ডিফল্ট হয় না?

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