HTML Encoder

HTML Encoder / Decoder

`& < > " '` karakterlerini güvenli HTML entity'lerine dönüştürün veya entity ile kaçırılmış metni tekrar düz metne çözün. Dört kodlama seviyesi — Minimal, Named, Numeric, All non-ASCII. UTF-8 + emoji + CJK güvenli, tarayıcınızda.

Varsayılan olarak Minimal'i kullanın — yalnızca HTML body / attribute bağlamlarını bozan beş karakteri (& < > " ') escape eder. Modern her şablon motorunun yaptığı tam olarak budur. Telif, nbsp, oklar gibi şeyleri okunabilir kodlar olarak istiyorsanız (&#169; yerine &copy;) Named entities'i kullanın. HTML'i named entity'leri anlamayabilecek pipeline'lardan geçiriyorsanız Numeric'i kullanın. Yalnızca ASCII destekleyen sistemleri (eski e-posta sunucuları, bozuk API'lar) hedefliyorsanız All non-ASCII'yi kullanın.

&apos; XML ve HTML5'te geçerlidir, ancak HTML 4.01'de geçerli değildir — eski tarayıcılar onu birebir ' metni olarak görüntüler. Numeric referans &#39; her yerde çalışır. Decoder, uyumluluk için &apos;'u giriş olarak kabul eder.

Giriş
Çıkış

Güvenli HTML çıktısı için tasarlandı

Şablonlar için kullanıcı içeriğini escape edin, entity ile kodlanmış verileri çözün — ve kullanması gerçekten keyifli olsun diye birkaç küçük ayrıntı.

Dört kodlama modu

Minimal yalnızca beş HTML-güvensiz karakteri (& < > " ') escape eder — sıradan kullanıcı içeriği için doğru varsayılan. Named, mevcut olduğunda &copy; / &nbsp; / &hearts; gibi okunabilir HTML5 entity'lerini kullanır. Numeric, ASCII dışındaki her kod noktasını &#NN; olarak kodlar. All non-ASCII, eski / yalnızca ASCII destekleyen pipeline'lar için yazdırılabilir ASCII dışındaki her kod noktasını kodlar.

Her entity'i çöz

Decoder; named entity'leri (&copy;), ondalık numeric (&#169;) ve onaltılık numeric (&#xA9;) destekler. Surrogate çiftli kod noktaları (emoji, antik yazılar) UTF-16 üzerinden doğru şekilde gidip gelir.

Canlı önizleme

Çıktı her tuş vuruşunda güncellenir — Encode / Decode butonuna basmaya gerek yok. Yönü tek tıkla değiştirin; Swap butonu çıktıyı tekrar girişe taşır, böylece dönüşümleri zincirleyebilirsiniz.

UTF-8 + emoji + CJK güvenli

Her Unicode kod noktası gidip gelir: 中文, العربية, русский, हिंदी, 🎉, Þorgeir. Encoder, kod noktası başına yineleme kullanır (charAt değil) böylece surrogate çiftler bozulmaz.

Tasarımdan gelen gizlilik

Metniniz cihazınızda kalır. Encoder, decoder ve named entity tablosu tamamen yerel JavaScript olarak çalışır. DevTools → Network'ü açın ve sıfır dış bağlantı isteğini kendiniz doğrulayın.

Küçük + hızlı

Saf JavaScript, framework runtime'ı yok. Soğuk yükleme gzipli olarak 25 KB'nin altında. 100 KB'lik bir HTML belgesi 5 ms'nin altında kodlanır.

HTML entity'leri nasıl kodlanır veya çözülür

Ham metinden entity-güvenli çıktıya dört adım.

  1. 1

    Metninizi yapıştırın

    Düz metni veya HTML'i Input paneline bırakın. Her şey olur — kullanıcı yorumları, blog yazıları, emoji, CJK, RTL yazılar. Encoder kod noktası bazında yineler, böylece çok baytlı diziler bozulmaz.

  2. 2

    Yönü + modu seçin

    Direction'ı Encode (metin → entity) veya Decode (entity → metin) olarak ayarlayın. Encode için modu seçin: şablonlar için Minimal, okunabilir entity'ler için Named, ASCII dışını &#NN; olarak istiyorsanız Numeric, yalnızca ASCII çıktı için All non-ASCII.

  3. 3

    Canlı önizlemeyi izleyin

    Çıktı her tuş vuruşunda güncellenir. Açılır menüyü değiştirerek modları gerçek zamanlı karşılaştırın. Swap'i kullanarak çıktıyı tekrar girişe taşıyın — gidip-gelme doğrulaması için kullanışlıdır (encode sonra decode = orijinal).

  4. 4

    Kopyalayın veya indirin

    Sonucu panonuza göndermek için kopyalama simgesini, output.encode.html / output.decode.txt olarak kaydetmek için indirme simgesini kullanın. Boyut farkı (giren / çıkan karakter / bayt) kodlamanın metni ne kadar şişirdiğini veya küçülttüğünü tam olarak gösterir.

Günlük web geliştirme için tasarlandı

Gizlilik öncelikli bir tarayıcı aracının, kodu rastgele bir online encoder'a yapıştırmaktan daha iyi olduğu dört yaygın senaryo.

Kullanıcı içeriğini bir şablona güvenle gömmek

Kullanıcı yorumları, form yanıtları, arama sorguları — dışarıdan gelen ve bir <p>, <li> ya da öznitelik içine düşen her şey. HTML'inize string birleştirmeden önce Minimal modlu encode'dan geçirin; bozuk markup'tan ve en basit XSS payload'larından korunmuş olursunuz.

Bir API'dan entity ile kaçırılmış veri okumak

Bazı API'lar zaten entity ile kaçırılmış string'ler döndürür (RSS feed'leri, bazı CMS export'ları, scrape edilmiş HTML). Yapıştırın, Decode'a basın, orijinal Unicode'u geri alın. Decoder named, ondalık ve hex entity'leri destekler — surrogate çiftler dahil.

E-posta konu satırları + meta etiketleri

<title>, <meta name="description">, <meta property="og:title"> — özel karakterler için hepsinin entity escape'e ihtiyacı vardır. Başlığınızı bir kez kodlayın, üçüne de yapıştırın.

Üçüncü taraf bir hizmete gidemeyecek hassas içerik

Dahili CMS içeriği, müşteri verisi, NDA korumalı şablonlar — bir bulut encoder'a yapıştıramayacağınız her şey. Yalnızca tarayıcıda çalışan araç her baytı bilgisayarınızda tutar. DevTools → Network'ü açın ve hiçbir şeyin dışarı çıkmadığını doğrulayın.

%100 özel — tarayıcınızda çalışır

Metniniz cihazınızdan asla ayrılmaz. DevTools → Network'ü açın; encode veya decode sırasında sıfır dış istek görürsünüz.

  • Encoder, decoder ve named entity arama tablosunun tamamı makinenizde JavaScript olarak çalışır — sunucu tarafında dönüşüm yok, üçüncü taraf API yok.
  • Surrogate çiftli kod noktaları (emoji, antik yazılar), bayt düzeyinde eşleme yerine kod noktası yinelemesiyle işlenir — böylece yapıştırılan 🎉, gidip geldikten sonra hâlâ 🎉 kalır.
  • Giriş yok, metin içeriği üzerinde telemetri yok. Yalnızca çerez onayı durumu için bir, dil tercihi için bir çerez kullanırız.

İlgili rehberler

HTML escape, entity tabloları ve güvenli şablonlama üzerine özenle seçilmiş yazılar.

Sıkça sorulanlar

Hangi modu seçmeliyim?

Varsayılan olarak Minimal'i kullanın — yalnızca HTML body / attribute bağlamlarını bozan beş karakteri (& < > " ') escape eder. Modern her şablon motorunun yaptığı tam olarak budur. Telif, nbsp, oklar gibi şeyleri okunabilir kodlar olarak istiyorsanız (&#169; yerine &copy;) Named entities'i kullanın. HTML'i named entity'leri anlamayabilecek pipeline'lardan geçiriyorsanız Numeric'i kullanın. Yalnızca ASCII destekleyen sistemleri (eski e-posta sunucuları, bozuk API'lar) hedefliyorsanız All non-ASCII'yi kullanın.

Neden `'` karakteri `&apos;` yerine `&#39;` olarak escape ediliyor?

&apos; XML ve HTML5'te geçerlidir, ancak HTML 4.01'de geçerli değildir — eski tarayıcılar onu birebir ' metni olarak görüntüler. Numeric referans &#39; her yerde çalışır. Decoder, uyumluluk için &apos;'u giriş olarak kabul eder.

Emoji ve CJK karakterler korunacak mı?

Evet. Encoder kod noktalarını (UTF-16 kod birimlerini değil) yineler, böylece 🎉 (U+1F389) gibi emojiler kodlamada &#127881; olur ve decode üzerinden doğru şekilde gidip gelir. CJK için de aynı (numeric modda 中文 → &#20013;&#25991;).

Kodladıktan sonra kullanıcı girdisini doğrudan HTML'e gömmek güvenli mi?

HTML body ve öznitelikleri için — evet, Minimal mod ile. URL bağlamları için (href="...") ayrıca URL kodlamasına ihtiyacınız vardır. Satır içi JavaScript veya CSS için ne HTML ne de URL kodlaması yeterlidir — bu bağlamları anlayan uygun bir şablon motoru kullanın. Asla escape edilmemiş kullanıcı girdisini bir <script> bloğuna yapıştırmayın.

Sunucunuza bir şey gönderiliyor mu?

Hayır. Encoder, decoder ve named entity arama tablosunun tümü cihazınızda JavaScript olarak çalışır. DevTools → Network'ü açın; encode veya decode sırasında sıfır dış istek görürsünüz. Sırları, müşteri verilerini, dahili şablonları yapıştırın — hiçbir şey bilgisayarınızdan ayrılmaz.