আমার কি সত্যিই '&' কে '& amp;' হিসাবে এনকোড করা দরকার?


207

আমি &আমার সাইটের HTML5 এবং UTF-8 সহ একটি ' ' চিহ্ন ব্যবহার করছি <title>। গুগল তার এসইআরপিগুলিতে এম্পারস্যান্ড জরিমানা দেখায়, যেমন সমস্ত ব্রাউজার তাদের শিরোনামে করে।

http://omotator.w3.org আমাকে এটি দিচ্ছে:

& কোনও চরিত্রের রেফারেন্স শুরু করেনি। (এবং সম্ভবত পালানো উচিত ছিল &amp;।)

আমার কি আসলেই করা দরকার &amp;?

আমি আমার পৃষ্ঠাগুলি যাচাইয়ের স্বার্থে যাচাইয়ের বিষয়ে জড়িত নই, তবে আমি এই বিষয়ে লোকের মতামত শুনতে আগ্রহী এবং যদি এটি গুরুত্বপূর্ণ এবং কেন হয়।


63
চশমা তাই বলে না। পোস্টারটি এইচটিএমএল 5 কে বোঝায় যা সমস্ত পরিস্থিতিতে এম্পারস্যান্ডের পালানোর প্রয়োজন হয় না।
ম্যাথু উইলসন

2
এটি আপনার সম্প্রদায়ের উইকির মতো হওয়া উচিত, কারণ আপনি মতামত খুঁজছেন এবং বৈধতা সম্পর্কে উদ্বিগ্ন না হওয়া বোঝায় যে উত্তর দেওয়ার কোনও উদ্দেশ্য ভিত্তি নেই।
রিচার্ড জে পি লে গেন

6
@ রিচার্ড: সত্যি? যদিও আমি সম্মতি দিচ্ছি না যে "বৈধকরণের কোনও গুরুত্ব নেই", আমি এটিকে একটি অত্যন্ত উদ্দেশ্যমূলক প্রশ্ন হিসাবে দেখছি: "এটি কি অনুমান ব্যতীত অন্য কিছু ভাঙবে?"
জোচিম সৌর

2
ইউজিয়াং বর্তমান ওয়েব ব্রাউজারগুলি ব্যবহারকারীকে বোঝার জন্য যথেষ্ট পরিমাণে যায়গুগলও তাই করে । এটি অনুমানের অংশ। ভবিষ্যতের ওয়েব ব্রাউজারগুলি কম ক্ষমাশীল হতে পারে। সুতরাং উইকিপিডিয়া এটি কীভাবে তা পরীক্ষা করে তা অনুলিপি করা সবসময় ভাল ধারণা।
unixman83

2
এইচটিএমএল স্পেক ক্রেপ ইনপুট গ্রহণ করতে বলেছে। এর অর্থ কি আপনার সাইটের এখনই বাজেয়াপ্ত হওয়ার "অনুমতি দেওয়া" আছে? বন্ধ হওয়া ট্যাগগুলি বন্ধ করুন এবং জিনিসগুলি পালাতে হবে! আসো মানুষ
ডগ 65536

উত্তর:


143

হ্যাঁ. ত্রুটিটি ঠিক যেমনটি বলেছেন, এইচটিএমএলে, বৈশিষ্ট্যগুলি # পিসিডিটিএ মানে তারা পার্স হয়। এর অর্থ আপনি বৈশিষ্ট্যগুলিতে অক্ষর সত্তা ব্যবহার করতে পারেন। &নিজেই ব্যবহার করা ভুল এবং লেনিনেন্ট ব্রাউজারগুলির পক্ষে না এবং এটি এইচটিএমএলটি এক্সএইচটিএমএল নয়, পার্সিংটি ভেঙে দেবে। যেমন এটি এড়ান &amp;এবং সবকিছু ঠিক আছে।

এইচটিএমএল 5 আপনাকে এটিকে ছাড়াই ছাড়তে দেয়, তবে কেবলমাত্র যখন নিম্নলিখিত ডেটা বৈধ চরিত্রের রেফারেন্সের মতো দেখায় না। তবে কোনটি হওয়া উচিত এবং কোনটি হওয়ার দরকার নেই তা নিয়ে চিন্তা করার চেয়ে এই প্রতীকটির সমস্ত উদাহরণ থেকে বাঁচাই ভাল।

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

দয়া করে আপনার কোডটি এড়িয়ে চলুন। এটি আপনাকে ভবিষ্যতে অনেক ঝামেলা বাঁচাবে।


9
কোনও ব্রাউজার নিজেই & এর কোনও "ভুল ব্যাখ্যা" করবে না। প্রতিটি বিদ্যমান ব্রাউজার এটিকে "&" হিসাবে প্রদর্শন করে। বিবেচনা করে তিনি স্পষ্টভাবে এটি করার জন্য ব্যবহারিক কারণ জিজ্ঞাসা করেছিলেন এবং তিনি বলেছিলেন যে তিনি বৈধতার বিষয়ে চিন্তা করেন না ..
টমাস বনিনি

47
হ্যাঁ. তবে নৈতিকভাবে, আমাদের কি ব্রাউজারগুলির লেন্সি এবং "চমৎকার" ত্রুটি পরিচালনার উপর নির্ভর করা উচিত ? বা আমাদের শুধু সঠিক কোডটি লেখা উচিত?
দেলান আজাবানী

8
@ ডেলান: আমি লেখার প্রতিটি পৃষ্ঠাকে বৈধ করে তোলার চেষ্টা করার সময়, আমি তাঁর প্রশ্নটি পড়ে বুঝতে পেরেছি যে তিনি "নৈতিকভাবে" সম্পর্কে চিন্তা করেন না। এটি কেবল কাজ করে কিনা তা যত্নশীল। এগুলি দুটি পৃথক দর্শন এবং উভয়েরই মতামত এবং বুদ্ধি রয়েছে, এবং কোনও "সঠিক" নেই। উদাহরণস্বরূপ এই ওয়েবসাইটটি বৈধতা দেয় না, এবং এটি একটি দুর্দান্ত ওয়েবসাইট।
টমাস বনিনি

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

11
প্রত্যেকেই এইচটিএমএল 5 সম্পর্কে কথা বলছে বলে মনে হচ্ছে, তবে মূল প্রশ্নটি HTML5 ব্যবহার করছে। এইচটিএমএল 5 স্পষ্টভাবে একটি অনির্বাচিত এবং এই পরিস্থিতিতে মঞ্জুরি দেয়, যদি না নিম্নলিখিতগুলি সাধারণত কোন সত্তায় প্রসারিত হয় (যেমন & কপি = 2 সমস্যাযুক্ত তবে & x = 2 ভাল)।
ম্যাথু উইলসন

55

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

সমস্ত পরিস্থিতিতে &যেমন এনকোডিং করা &amp;হচ্ছে আমার পক্ষে ত্রুটি ও ব্যর্থতার সম্ভাবনা হ্রাস করে বেঁচে থাকার পক্ষে একটি সহজ নিয়ম।

নিম্নলিখিত তুলনা করুন: কোনটি সহজ? যা সহজ আপ দাত্ত করার ?

পদ্ধতি 1

  1. অ্যাম্পারস্যান্ড অক্ষর অন্তর্ভুক্ত এমন কিছু সামগ্রী লিখুন includes
  2. তাদের সমস্ত এনকোড করুন।

পদ্ধতি 2

(দয়া করে লবণের দানা সহ);)

  1. কিছু বিষয়বস্তু লিখুন যার মধ্যে একটি অ্যাম্পারস্যান্ড অক্ষর রয়েছে।
  2. কেস বাই কেস ভিত্তিতে, প্রতিটি অ্যাম্পারস্যান্ড দেখুন। নির্ধারণ করুন যদি:
    • এটি বিচ্ছিন্ন এবং যেমন নির্বিঘ্নে একটি অ্যাম্পারস্যান্ড। যেমন। volt & amp
       > সেক্ষেত্রে এটিকে এনকোডিং করবেন না।
    • এটি বিচ্ছিন্ন নয়, তবে আপনি মনে করেন এটি তবুও দ্ব্যর্থহীন, ফলস্বরূপ সত্তাটির অস্তিত্ব নেই এবং সত্তার তালিকাটি কখনই বিকশিত হতে পারে না বলেই কখনও উপস্থিত হবে না। উদাঃ amp&volt
       > সেক্ষেত্রে এটিকে এনকোডিং করতে বিরক্ত করবেন না।
    • এটি বিচ্ছিন্ন এবং অস্পষ্ট নয়। যেমন। volt&amp
       > এটি এনকোড করুন।

??


3
দ্বিতীয় ক্ষেত্রে amp&volt হয় দ্ব্যর্থক করুন: &voltএখন একটি সত্তা রেফারেন্স বা?
গম্বো

6
@Gumbo দ্য এম্পারসেন্ড মধ্যে amp&voltহয় না একটি দ্ব্যর্থক এম্পারসেন্ড (এইচটিএমএল বৈশিষ্ট সংজ্ঞা অনুযায়ী)। দেখুন mathiasbynens.be/notes/ambiguous-ampersands এবং mothereff.in/ampersands#amp%26volt
ম্যাথিয়াস বাইনেস

@ ম্যাথিয়াসবিনেন্স এখন (2019) এর মধ্যে, একটি অস্পষ্ট অ্যাম্পারস্যান্ডের সংজ্ঞাটি আপনি 2011 সালে ম্যাথিয়াসবাইনেস.বে / নোটস / দ্ব্যর্থহীন - আধ্যাত্মিক সংস্করণে উদ্ধৃত সংজ্ঞা থেকে কিছুটা পরিবর্তিত হয়েছে বলে মনে হচ্ছে ।
জ্যাকব সি। পুনরায় ইনস্টল করুন মনিকা

21

এইচটিএমএল 5 বিধি HTML4 থেকে পৃথক। এটি এইচটিএমএল 5 তে প্রয়োজনীয় নয় - যদি না এম্পারস্যান্ডটি দেখতে প্যারামিটারের নামটি শুরু করে। "& অনুলিপি = 2" এখনও একটি সমস্যা, উদাহরণস্বরূপ, যেহেতু & অনুলিপি; কপিরাইট প্রতীক।

তবে আমার কাছে মনে হয়েছে যে নিম্নলিখিত পাঠ্যের উপর নির্ভর করে এনকোড দেওয়ার বা এনকোড না দেওয়ার সিদ্ধান্ত নেওয়া আরও কঠিন কাজ। সুতরাং সবচেয়ে সহজ পথটি সম্ভবত সর্বদা এনকোড করা।


2
এটি অ্যাট্রিবিউট মানগুলি উদ্ধৃত করার মতো - আপনার দরকার নেই তবে আপনি যদি পুরোপুরি এটি করেন তবে আপনি ভুল হতে পারবেন না।
পল ডি ওয়েট

3
&copy=2আপনি মনে করতে পারেন সমস্যা হিসাবে বড় হিসাবে না। অ্যাট্রিবিউট মানগুলিতে (উদাহরণস্বরূপ hrefবৈশিষ্ট্য), এর &copyজন্য একটি চরিত্রের রেফারেন্স হিসাবে বিবেচিত হবে না ©। একটি বৈশিষ্ট্য মানের বাইরে, এটি করবে।
ম্যাথিয়াস বাইনেস

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

আপনি কি এইচটিএমএল 5 বিধিগুলির একটি রেফারেন্স যুক্ত করতে পারেন?
ফেরিবিগ

17

আমি মনে করি এটি "ব্রাউজার যখন যত্ন করে না কেন সেই অনুমান অনুসরণ করুন কেন" এই প্রশ্নে পরিণত হয়েছে। আমার সাধারণীকরণের উত্তরটি এখানে:

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

বিশেষত, যদি এইচটিএমএল 5 এর & amp ব্যবহারের প্রয়োজন হয় না; আপনার নির্দিষ্ট পরিস্থিতিতে এবং আপনি এইচটিএমএল 5 ডক্টিপ ব্যবহার করছেন (এবং আপনার ব্যবহারকারীরা এইচটিএমএল 5-কমপ্লায়েন্ট ব্রাউজারগুলি ব্যবহার করবেন বলেও আশা করছেন), তবে এটি করার কোনও কারণ নেই।


1
যা বলা হয়ে থাকে, সাধারণভাবে বলতে গেলে, আপনার অবশ্যই মনে রাখতে হবে যে বেশিরভাগ "স্ট্যান্ডার্ড" উপায়গুলি এখনও খসড়া মোডে রয়েছে এবং ভবিষ্যতে পরিবর্তিত হতে পারে।
refaelio

6

ঠিক আছে, যদি এটি ব্যবহারকারীর ইনপুট থেকে আসে তবে একেবারে হ্যাঁ, সুস্পষ্ট কারণে। ভাবুন এটি খুব ওয়েবসাইট যদি না করে থাকে: এই প্রশ্নের শিরোনামটি কি আমার '&' হিসাবে '&' এর মতো এনকোড করার দরকার আছে?

যদি এটির মতো কিছু হয় echo '<title>Dolce & Gabbana</title>';তবে কঠোরভাবে বলতে গেলে আপনার দরকার নেই। এটি আরও ভাল হবে তবে আপনি কোনও ব্যবহারকারী না পারলে পার্থক্যটি লক্ষ্য করবেন।


5

আপনার titleআসলে কি তা আমাদের দেখাতে পারেন ? আমি জমা দেওয়ার সময়

<!DOCTYPE html>
<html>
<title>Dolce & Gabbana</title>
<body>
<p>am i allowed loose & mpersands?</p>
</body>
</html>

থেকে http://validator.w3.org/ - স্পষ্টভাবে পরীক্ষামূলক HTML 5 মোড ব্যবহার করার জন্য এটি জিজ্ঞাসা - এটি সম্পর্কে কোন অভিযোগ আছে &গুলি ...


1
হ্যাঁ, এইচটিএমএল 5 এর পূর্ববর্তী এইচটিএমএল এবং এক্সএইচটিএমএল পার্সারের তুলনায় আলাদা পার্সার রয়েছে এবং নির্দিষ্ট পরিস্থিতিতে অনস্কেপড অ্যাম্পারস্যান্ডগুলি মঞ্জুরি দেয়।
কেভিনজি

এই উদাহরণগুলি যতদূর যায়, এইচটিএমএল 5 এ নতুন কিছু নয়। উভয় <title>Dolce & Gabbana</title>এবং <p>Dolce & Gabbana</p>বৈধ এইচটিএমএল 2.0।
ম্যাথিয়াস বাইনেস

4

এইচটিএমএলতে একটি অক্ষর রেফারেন্স বা সত্তা রেফারেন্সের& মধ্যে একটি রেফারেন্সের সূচনা চিহ্নিত করে । পার্সারের সেই বিন্দু থেকে প্রতীক প্রত্যাশার হয় অক্ষর রেফারেন্স বা একটি সত্তার নাম যা কোনও সত্তার রেফারেন্সকে বোঝায়, তার পরে উভয় একটি । এটাই স্বাভাবিক আচরণ।#;

কিন্তু যদি রেফারেন্স নাম অথবা শুধু রেফারেন্স খোলার &একটি সাদা স্থান বা অন্যান্য বিভেদক দ্বারা অনুসরণ করা হয় পছন্দ ", ', <, >, &, শেষ ;এবং এমনকি একটি একটি প্লেইন প্রতিনিধিত্ব রেফারেন্স &বাদ দেওয়া যেতে পারে:

<p title="&amp;">foo &amp; bar</p>
<p title="&amp">foo &amp bar</p>
<p title="&">foo & bar</p>

এই ক্ষেত্রে কেবল শেষ ;বা এমনকি রেফারেন্সটি বাদ দেওয়া যেতে পারে (কমপক্ষে এইচটিএমএল 4 এ)। আমি মনে করি এইচটিএমএল 5 এর সমাপ্তি প্রয়োজন ;

তবে স্পেসিফিকেশনটি সর্বদা বিভ্রান্তি এড়াতে চরিত্রের রেফারেন্স &#38;বা সত্তা রেফারেন্সের মতো একটি রেফারেন্স ব্যবহার করার পরামর্শ দেয় &amp;:

চরিত্রের রেফারেন্স (সত্তা রেফারেন্স ওপেন ডিলিমিটার) শুরু করার সাথে বিভ্রান্তি এড়াতে লেখকদের " &amp;" (এএসসিআইআই দশমিক 38) এর পরিবর্তে ব্যবহার করা উচিত &। লেখকগণকে &amp;বৈশিষ্ট্য মানগুলিতেও " " ব্যবহার করা উচিত, যেহেতু সিডিএটিএ বৈশিষ্ট্য মানগুলির মধ্যে অক্ষর রেফারেন্স অনুমোদিত হয় allowed


1
এটি আপনার এইচটিএমএল 4 স্পেসের সাথে যুক্ত; আমার (খসড়া) এইচটিএমএল 5 স্পেশনের পাঠ থেকে কেবল অস্পষ্ট এম্পারস্যান্ডগুলিই অনুমোদিত নয়। উদাহরণস্বরূপ, একটি স্পেসের পরে একটি অ্যাম্পারস্যান্ড অস্পষ্ট নয় এবং তাই (আবার আমার পাঠের মাধ্যমে) অনুমতি দেওয়া উচিত - এইচটিএমএল 5 বৈধকারক গ্রহণ করে এমন মার্কআপের জন্য আমার উত্তর দেখুন।
আকাশম

1
@ আকাশম: আমি নিশ্চিত নই, এটি এমন শোনাচ্ছে।
গম্বো

3

যদি ব্যবহারকারী এটি আপনার কাছে পৌঁছে দেয়, বা এটি কোনও ইউআরএল-এ চলে যায়, আপনার এড়াতে হবে।

এটি যদি কোনও পৃষ্ঠায় স্থির পাঠ্যে প্রদর্শিত হয়? সমস্ত ব্রাউজারগুলি এটি যে কোনও উপায়ে পাবেন, আপনি এটি সম্পর্কে খুব বেশি চিন্তা করবেন না, যেহেতু এটি কার্যকর হবে।


3

আপডেট (মার্চ 2020): ডাব্লু 3 সি বৈধকরণকারী আর ইউআরএল পালানোর বিষয়ে অভিযোগ করে না।

আমি কেন চিত্রের ইউআরএলটির পলায়ন প্রয়োজন তা যাচাই করছিলাম, তাই এটি https://omotator.w3.org এ চেষ্টা করে দেখলাম । ব্যাখ্যাটি বেশ সুন্দর। এটি হাইলাইট করে যে এমনকি ইউআরএল এরও এড়ানো দরকার। [পিএস: আমি অনুমান করি যে এটি ইউআরএল-এর প্রয়োজনের পর থেকে গ্রাস হয়ে গেলে এটি অনাকাঙ্ক্ষিত হবে &। কেউ কি স্পষ্ট করতে পারেন?]

<img alt="" src="foo?bar=qut&qux=fop" />

দস্তাবেজটিতে একটি সত্তা রেফারেন্স পাওয়া গেছে, তবে সেই নামটি দিয়ে সংজ্ঞা দেওয়া হয়নি। প্রায়শই এটি রেফারেন্সের নামটি ভুল বানান, আনঙ্কডেড এম্পারস্যান্ডগুলি বা ট্র্যাকিং সেমিকোলন (;) ছেড়ে রেখে ঘটে থাকে। এই ত্রুটির সর্বাধিক সাধারণ কারণ ডাব্লুডিজি "ইউআরএলগুলির অ্যাম্পারস্যান্ডস" -তে বর্ণিত ইউআরএলগুলিতে আনইনকোডেড অ্যাম্পারস্যান্ডগুলি। সত্তা রেফারেন্সগুলি একটি এম্পারস্যান্ড (&) দিয়ে শুরু হয় এবং সেমিকোলন দিয়ে শেষ হয় (;)। আপনি যদি আপনার নথিতে আক্ষরিক অ্যাম্পারস্যান্ড ব্যবহার করতে চান তবে আপনাকে অবশ্যই এটি "&" হিসাবে এনকোড করতে হবে (এমনকি URL এর ভিতরেও!)। সেমিকোলনের সাথে সত্তা রেফারেন্সগুলি শেষ করতে সাবধান হন বা আপনার সত্তার রেফারেন্সটি নীচের পাঠ্যের সাথে ব্যাখ্যা করতে পারে। এছাড়াও মনে রাখবেন যে নামযুক্ত সত্তা উল্লেখগুলি কেস-সংবেদনশীল; & Aelig; এবং বিভিন্ন অক্ষর।


1
শীর্ষে ভোট দেওয়া উত্তরটি পড়ুন। বৈশিষ্ট্যগুলি #PCDATA এবং তাই পার্স করা হয়। সত্ত্বা সেখানে পরিচালিত হয়। আপনার উদাহরণে, &শুরু করে সত্তা রেফারেন্স। পড়ার পরে &qux, পার্সারটি কোনও চূড়ান্ত অর্ধপরিমাণ ( ;) খুঁজে না পেয়ে সমান চিহ্ন ( =) এ চলে যা সত্তার নামের অংশ হতে পারে না। পার্সার যদি সত্যিই কঠোর হওয়ার চেষ্টা করে (এইচটিএমএল 4 অনুযায়ী) তবে এটি পার্স ত্রুটি হওয়া উচিত। এইচটিএমএল 5 এ সত্তা বিশ্লেষণ সামগ্রিকভাবে আরও স্বাচ্ছন্দ্যযুক্ত।
পেরেক

1
আমার সন্দেহ হয় যে সাধারণভাবে ;ক্যোয়ারি স্ট্রিংগুলিতে বিভাজক হিসাবে ব্যবহার করা ভাল (যখন আপনি লিঙ্কটি নিয়ন্ত্রণ করবেন) সেই কারণেই।
ডেমি

2

হ্যাঁ, সম্ভব হলে আপনার বৈধ কোড দেওয়ার চেষ্টা করা উচিত।

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

কিছু উদাহরণ যেখানে ব্রাউজারগুলি আলাদাভাবে প্রতিক্রিয়া দেখাতে পারে সেগুলি হ'ল যদি আপনি কোনও টেবিলের ভিতরে উপাদানগুলি টেবিলের ভিতরে রাখেন তবে টেবিলের ঘরগুলির বাইরে বা যদি আপনি একে অপরের অভ্যন্তরে লিঙ্ক করে থাকেন।

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

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


2

বছর কয়েক আগে, আমরা একটি প্রতিবেদন পেয়েছি যে আমাদের ওয়েব অ্যাপগুলির একটি ফায়ারফক্সে সঠিকভাবে প্রদর্শন করছে না। দেখা গেল যে পৃষ্ঠায় এমন ট্যাগ রয়েছে যা দেখে মনে হচ্ছে

<div style="..." ... style="...">

যখন পুনরাবৃত্ত শৈলীর বৈশিষ্ট্যের মুখোমুখি হন, আইই উভয় শৈলীর সমন্বয় করে, যখন ফায়ারফক্স কেবল তাদের মধ্যে একটি ব্যবহার করে, তাই ভিন্ন আচরণ the আমি ট্যাগটি পরিবর্তন করেছি

<div style="...; ..." ...>

এবং যথেষ্ট নিশ্চিত, এটি সমস্যার সমাধান! গল্পটির নৈতিকতা হ'ল ব্রাউজারগুলিতে অবৈধ এইচটিএমএল এর চেয়ে বৈধ এইচটিএমএলকে আরও নিয়মিত পরিচালনা করা হয়। সুতরাং, ইতিমধ্যে আপনার অভিশাপ মার্কআপ ঠিক করুন! (অথবা এটি ঠিক করার জন্য এইচটিএমএল পরিপাটি ব্যবহার করুন))


1

যদি এইচটিএমএল& ব্যবহার করা হয় তবে আপনার এটি এড়ানো উচিত

যদি &জাভাস্ক্রিপ্ট স্ট্রিংগুলিতে ব্যবহার করা হয় যেমন একটি alert('This & that');বা ডকুমেন্ট.আরে আপনার এটি ব্যবহার করার দরকার নেই।

আপনি যদি ডকুমেন্ট.ওরাইট ব্যবহার করছেন তবে আপনার এটি ব্যবহার করা উচিত যেমন document.write(<p>this &amp; that</p>)


document.writeএড়িয়ে চলা উচিত. W3.org/html/wg/drafts/html/master/dom.html#docament.write%28%29
ওরিওল

সম্পর্কে ভাল পয়েন্ট document.write()। তবে অলেক্স অলেক্স স্ক্রিপ্ট স্ট্যান্ডগুলি থেকে ইমোতে নথিতে লেখার বিষয়ে লিখে চলেছে o +1
প্যাট্রিক এম

1

এটি আপনার কাছাকাছি একটি সেমিকোলন শেষ হওয়ার সম্ভাবনার উপর নির্ভর করে &, যার ফলে এটি বেশ আলাদা কিছু প্রদর্শন করে।

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

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


0

তাহলে আপনি কি সত্যিই স্ট্যাটিক টেক্সট বিষয়ে কথা বলছি

<title>Foo & Bar</title>

হার্ড ডিস্কে কিছু ফাইলে সংরক্ষণ করা হয়েছে এবং সরাসরি সার্ভার দ্বারা পরিবেশন করা হয়েছে, তবে হ্যাঁ: সম্ভবত এড়াতে হবে না।

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

আপনি যদি একটি সহজ অব্যাহতি না থাকে তাহলে &, তারপর সম্ভাবনা এছাড়াও আপনি একটি অব্যাহতি না &amp;বা &nbsp;বা <b>বা <script src="http://attacker.com/evil.js">বা অন্য কোন অবৈধ পাঠ। এর অর্থ হ'ল আপনি নিজের কন্টেন্টটি ভুলভাবে প্রদর্শন করছেন এবং এক্সএসএস আক্রমণগুলির জন্য সন্দেহজনক

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


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

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

-1

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

এটি আপনার মাস্টার পৃষ্ঠা বা নিয়ন্ত্রণে আপনার রেন্ডার ওভাররাইডে যুক্ত করুন:

এটি ভুল জায়গায় রাখার জন্য দয়া করে আমাকে শিখা করবেন না:

// remove the & from href="blaw?a=b&b=c" and replace with &amp; 
//in urls - this corrects any unencoded & not just those in URL's
// this match will also ignore any matches it finds within <script> blocks AND
// it will also ignore the matches where the link includes a javascript command like
// <a href="javascript:alert{'& & &'}">blaw</a>
html = Regex.Replace(html, "&(?!(?<=(?<outerquote>[\"'])javascript:(?>(?!\\k<outerquote>|[>]).)*)\\k<outerquote>?)(?!(?:[a-zA-Z][a-zA-Z0-9]*|#\\d+);)(?!(?>(?:(?!<script|\\/script>).)*)\\/script>)", "&amp;", RegexOptions.Singleline | RegexOptions.IgnoreCase);

-1

লিংক কখন এবং কেন আপনি অব্যাহতি প্রয়োজন হতে পারে একটি মোটামুটি ভাল উদাহরণ আছে &করতে&amp;

https://jsfiddle.net/vh2h7usk/1/

মজার বিষয় হল, এখানে আমার উত্তরে সঠিকভাবে উপস্থাপন করার জন্য আমাকে চরিত্রটি থেকে বাঁচতে হয়েছিল। যদি আমি অন্তর্নির্মিত কোড নমুনা বিকল্পটি ব্যবহার করি (উত্তর প্যানেল থেকে), আমি কেবল টাইপ করতে পারি &amp;এবং এটি যেমনটি প্রদর্শিত হবে তেমন প্রদর্শিত হয়। তবে আমি যদি <code></code>উপাদানটি ম্যানুয়ালি ব্যবহার করি তবে সঠিকভাবে এটি উপস্থাপন করার জন্য আমাকে পালাতে হবে :)

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