html tutorial আমি<a href...> এপ্রেসেন্ডগুলি এনকোড করবো?




html কি (4)

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

এটি গুণমানের মানগুলির মধ্যে অ্যাপার্সেন্ডস থেকে পালাতে সক্ষম হবে, তবে বর্তমান সরঞ্জামগুলির সাথে বৈধতা ছাড়াও, href মানগুলিতে তাদের পালাতে কোনও বাস্তব প্রয়োজন নেই (এবং যদি আপনি তাদের পালাতে শুরু করেন তবে ভুলগুলি করার একটি ক্ষুদ্র ঝুঁকি রয়েছে)।

আমি এমন কোড লিখছি যা স্বয়ংক্রিয়ভাবে এইচটিএমএল জেনারেট করে, এবং আমি এটি সঠিকভাবে এনকোড করতে চাই।

বলুন আমি নিম্নলিখিত ইউআরএল একটি লিঙ্ক তৈরি করছি:

http://www.google.com/search?rls=en&q=stack+overflow

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

<a href="http://www.google.com/search?rls=en&amp;q=stack+overflow">

এটা কি ঠিক?


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

লিঙ্কগুলির মধ্যে URL সম্পর্কিত আপনার দুটি মান রয়েছে ( <a href )।

প্রথম মানটি RFC 1866 (এইচটিএমএল 2.0) যেখানে "3.2.1। ডেটা অক্ষর" এ আপনি HTML অক্ষরের মান হিসাবে ব্যবহৃত হলে অক্ষরগুলি পড়তে পারেন। (বৈশিষ্ট্যাবলীগুলি বিশেষ অক্ষরগুলিকে অনুমতি দেয় না, যেমন <a hr&ef="http://... অনুমোদিত নয়, এবং <a hr&amp;ef="http://... )

পরে এটি এইচটিএমএল 4 স্ট্যান্ডার্ডে চলে গেছে, আপনি যা পালাতে যাচ্ছেন তা হল:

<   to   &lt;
>   to   &gt;
&   to   &amp;
"   to   &quote;
'   to   &apos;

অন্য মান হল RFC 3986 "জেনেরিক ইউআরআই মান", যেখানে URL গুলি পরিচালনা করা হয় (ব্রাউজারটি যখন একটি লিঙ্ক অনুসরণ করতে চলেছে তখন এটি হ'ল ব্যবহারকারীটি HTML উপাদানটিতে ক্লিক করেছেন)।

reserved    = gen-delims / sub-delims

gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"

sub-delims  = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="

সেই অক্ষরগুলি এড়িয়ে যাওয়ার জন্য এটি গুরুত্বপূর্ণ, যাতে ক্লায়েন্ট জানে না যে তারা ডাটা বা একটি ডিলিমাইটার প্রতিনিধিত্ব করে।

উদাহরণ unescaped:

https://example.com/?user=test&password&te&st&goto=https://google.com

উদাহরণ, সম্পূর্ণ legit URL

https://example.com/?user=test&password&te%26st&goto=https%3A%2F%2Fgoogle.com

এইচটিএমএল বৈশিষ্ট্য মান সম্পূর্ণরূপে বৈধ ইউআরএল উদাহরণ:

https://example.com/?user=test&amp;password&amp;te%26st&amp;goto=https%3A%2F%2Fgoogle.com

এছাড়াও গুরুত্বপূর্ণ পরিস্থিতিতে:

  • একটি মান হিসাবে জাভাস্ক্রিপ্ট:

    <img src="..." onclick="window.location.href = &quot;https://example.com/?user=test&amp;password&amp;te%26st&amp;goto=https%3A%2F%2Fgoogle.com&quot;;">...</a> (হ্যাঁ ;; সঠিক।)

  • একটি মূল্য হিসাবে JSON:

    <a href="..." data-analytics="{&quot;event&quot;: &quot;click&quot;}">...</a>

  • পালিয়ে যাওয়া জিনিসগুলি, ডাবল এনকোডিং, প্যারামিটারের ভিতরে URL এর ভিতরে URL, ...

    http://x.com/?passwordUrl=http%3A%2F%2Fy.com%2F%3Fuser%3Dtest&amp;password=&quot;&quot;123


হ্যাঁ, আপনি রূপান্তর করা উচিত &amp;

W3C দ্বারা এই HTML বৈধতা সরঞ্জাম এইরকম প্রশ্নগুলির জন্য সহায়ক। এটি আপনাকে একটি নির্দিষ্ট পৃষ্ঠার জন্য ত্রুটি এবং সতর্কতা বলতে হবে।


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

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

এটি এমনই ছিল যে ইউআরএলগুলিকে অ-ASCII অক্ষরের সাথে বিশেষ চিকিত্সা প্রয়োজন, যেমন। আপনি শতাংশ-পাল্টা ব্যবহার করে যারা এনকোড করতে হয়েছিল, এবং এই ক্ষেত্রে এটি %C3%A9 দিতে হবে, কারণ তারা RFC 1738 দ্বারা সংজ্ঞায়িত করা হয়েছিল। যাইহোক, RFC 1738টি RFC 3986 (URIs, ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার) এবং RFC 3987 (আইআরআই, ইন্টারন্যাশনালাইজড রিসোর্স আইডেন্টিফায়ার্স) দ্বারা স্থানান্তরিত হয়েছে, যার উপর ওয়াটডাব্লু এটির কাজটি ভিত্তিক করে যখন তারা কোনও ASCII- এর সাথে URL দেখলে ব্রাউজার কীভাবে আচরণ করবে তা নির্ধারণ করে HTML5 থেকে এটিতে অক্ষর । এখন ইউআরএল-এএসসিআইআই অক্ষরগুলি অন্তর্ভুক্ত করার জন্য এটি এখন নিরাপদ, শতাংশ-এনকোডেড বা না।





html