İçeriğe geç
gelistiriciaraclari

HTML Encode / Decode Aracı

Metninizi HTML entity'lerine kodlayın veya var olan entity'leri okunur metne çözün; swap butonuyla iki yön arasında geçiş yapın.

~/kod/html-encode-decodetarayıcıda çalışır
Kodlanmış
Sonuç burada görünecek.

Encode yalnız & < > " ' karakterlerini dönüştürür; UTF-8 sayfada Türkçe harfler olduğu gibi kalabilir. Decode tüm adlandırılmış (&nbsp;, &ccedil;) ve sayısal (&#351;, &#x15F;) karakter referanslarını çözer; etiketler metin olarak kalır, hiçbir şey çalıştırılmaz.

Verileriniz tarayıcınızda işlenir ve sunucuya gönderilmez.

Nasıl kullanılır?

  1. 01Metni kutuya yazın; kodlama veya çözme yönüne göre sonuç anında güncellenir.
  2. 02Kodlama yönünde, ASCII dışı her karakteri de sayısal entity (&#…;) yapmak isterseniz ilgili seçeneği işaretleyin.
  3. 03Çözme yönünde &nbsp; gibi adlandırılmış ve &#231; gibi sayısal entity'lerin tümü otomatik tanınır.
  4. 04Swap butonuyla girdi ve çıktının yerini değiştirip ters yönde devam edin.

HTML Encode / Decode aracı hakkında

## Neden HTML karakterleri kodlanır?

HTML'de &, <, >, " ve ' karakterlerinin özel anlamları vardır; bir kullanıcı girdisini bu karakterleri kodlamadan sayfaya basmak, tarayıcının onu etiket veya öznitelik sınırı sanmasına yol açar ve HTML enjeksiyonuna (XSS'in bir biçimi) kapı açar. Kodlama bu beş karakteri sırasıyla &amp; &lt; &gt; &quot; &#39; entity'lerine çevirir; "tüm ASCII dışı karakterleri de kodla" seçeneği açıldığında ş, ğ gibi harfler de &#351; gibi sayısal entity'lere döner — bu, eski veya karakter kodlaması belirsiz sistemlere veri aktarırken güvenli bir seçimdir.

Çözme yönü hem &nbsp; &ccedil; &amp; gibi adlandırılmış (named) entity'leri hem de &#231; veya &#x2603; gibi ondalık ve onaltılık sayısal entity'leri tanır ve orijinal Unicode karaktere çevirir. Bu, bir CMS'ten, RSS kaynağından veya eski bir veritabanı kaydından kopyalanan, entity'lerle dolu ve gözle okunması zor bir metni, kaynak biçimi ne olursa olsun tek adımda okunur hale getirmek için kullanışlıdır.

## Kodlama mı, çıkış kaçışı mı?

Bu araç metni elle kodlamak/çözmek isteyenler içindir; üretim kodunda kullanıcı girdisini HTML'e basarken şablon motorunuzun (React, Vue, Django, Jinja…) varsayılan otomatik kaçışına güvenmek her zaman daha güvenlidir, çünkü elle kodlama bir noktada unutulabilir ve bu doğrudan bir güvenlik açığına dönüşür. Araç daha çok hata ayıklama, statik içerik hazırlama veya bir entity dizisinin gerçekte hangi karaktere karşılık geldiğini hızla kontrol etmek için kullanılır.

Bir metni HTML yerine URL içine yerleştirecekseniz farklı bir kodlama gerekir; bunun için URL Encode sayfasına bakın. Kodlanmış bir XML belgesindeki entity'leri kontrol edecekseniz XML Formatlama, sayfadaki entity dizilerini toplu bulup değiştirmek isterseniz Regex Test sayfası, sonucu Base64 olarak bir başka sisteme güvenle taşımanız gerekiyorsa Base64 Encode sayfası, hepsi tarayıcıda çalıştığı için işinize hızla yarar.

Sıkça sorulan sorular

&amp; ile &#38; arasında fark var mı?

Hayır, ikisi de & karakterini temsil eder; biri adlandırılmış (named), diğeri sayısal (numeric) entity biçimidir ve tarayıcılar ikisini de aynı şekilde yorumlar.

Hangi karakterler varsayılan olarak kodlanır?

& < > " ' karakterleri varsayılan olarak kodlanır; bunlar HTML sözdiziminde özel anlam taşıyan karakterlerdir.

Türkçe karakterleri de entity yapmam gerekir mi?

Genelde hayır, sayfanız UTF-8 ise gerekmez; yalnızca hedef sistemin karakter kodlaması belirsizse "ASCII dışı karakterleri de kodla" seçeneğini kullanmanız önerilir.

&nbsp; ne işe yarar?

Kırılmaz boşluk (non-breaking space) anlamına gelir; satır sonunda bölünmemesi gereken iki kelime arasında kullanılır ve çözüldüğünde normal boşluğa benzer bir karaktere döner.

Bu kodlama XSS'e karşı tek başına yeterli mi?

Doğru bağlamda (HTML metin içeriği) kullanıldığında temel bir korumadır, ama öznitelik, JavaScript veya CSS bağlamlarında ek kurallar gerekir; üretim kodunda şablon motorunuzun otomatik kaçışına güvenmeniz daha güvenlidir.

İlgili araçlar