کدگذار و رمزگشای HTML Entity
متن را escape کنید تا قرار دادن آن داخل HTML امن باشد، یا entityهایی مانند & و € را به کاراکترهای خوانا برگردانید.
اجرا در مرورگر شمابدون ثبتنامبدون آپلود
نحوهٔ استفاده از کدگذار / رمزگشای موجودیتهای HTML
- برای escape کردن متن کدگذاری و برای تبدیل entityها به کاراکتر رمزگشایی را انتخاب کنید.
- هنگام کدگذاری، انتخاب کنید کدام کاراکترها escape شوند: فقط کاراکترهای ویژهٔ HTML، همهٔ کاراکترهای غیر ASCII هم، یا همهچیز بهجز حروف و ارقام.
- entityهای نامدار (
é)، دهدهی (é) یا هگز (é) را انتخاب کنید. - نتیجه را کپی کنید. هنگام رمزگشایی، entityهای ناشناخته فهرست میشوند تا غلطهای تایپی را پیدا کنید.
چرا HTML را escape کنیم؟
پنج کاراکتر در HTML معنای خاصی دارند: & شروع یک entity است، < و > تگها را مشخص میکنند، و " و ' مقدار attributeها را میبندند. اگر متنی که کاربر وارد کرده و این کاراکترها را دارد بدون escape در صفحه قرار گیرد، میتواند چیدمان را خراب کند یا بدتر از آن، اسکریپت تزریق کند (cross-site scripting یا XSS). escape کردن آنها را به &، <، >، " و ' تبدیل میکند که مرورگر آنها را بهصورت متن نمایش میدهد.
entityهای نامدار، دهدهی و هگز
هر کاراکتر یونیکد را میتوان بهصورت ارجاع عددی نوشت: دهدهی € یا هگز € برای €. بسیاری از کاراکترهای رایج نام خوانایی هم دارند، مانند €، © یا . ارجاعهای عددی همهجا کار میکنند، حتی در XML که فقط پنج entity نامدار تعریف میکند. entityهای نامدار در کد منبع خواناترند.
آیا باید کاراکترهای غیر ASCII را کدگذاری کنم؟
اگر صفحهٔ شما با UTF-8 ارائه شود، خیر؛ و تقریباً همهٔ سایتهای مدرن اینطورند (<meta charset="utf-8">). کاراکترهایی مانند é، ü یا 日本 را میتوان مستقیماً نوشت. کدگذاری آنها برای سیستمهای قدیمی، قالبهای ایمیل یا زمانی که یک pipeline متن غیر ASCII را خراب میکند مفید است.
escape کردن به زمینه وابسته است
escape کردن با HTML entity از متنی محافظت میکند که در محتوای عنصر و attributeهای داخل نقلقول قرار میگیرد. برای مقادیر داخل بلوکهای <script>، event handlerهای درونخطی، CSS یا URLها کافی نیست؛ هر کدام کدگذاری خاص خود را لازم دارند. auto-escaping فریمورک خود (React، Vue، Jinja، Blade) را به ساختن دستی رشته ترجیح دهید.
پرسشهای متداول
کدام کاراکترها باید در HTML escape شوند؟
& و < ضروریاند. در مقدار attributeها، کاراکتر نقلقولی را که استفاده کردهاید هم escape کنید. escape کردن هر پنج کاراکتر (& < > " ') پیشفرض امن است.&nbsp; چیست؟
چرا &copy2024 به ©2024 رمزگشایی میشود؟
©، & و < را حتی بدون نقطهویرگول پایانی رمزگشایی میکنند. این رمزگشا هم از همین قاعده پیروی میکند. در HTML خودتان همیشه نقطهویرگول را بنویسید.آپاستروف &apos; است یا &#39;؟
' در HTML5 و XML معتبر است اما در HTML 4 نه؛ بنابراین ' یا ' عددی سازگارترین انتخاب است و همان چیزی است که این کدگذار تولید میکند.