メインコンテンツへスキップ

無料HTML エンコーダー&デコーダー

特殊文字を HTML エンティティにエンコードするか、エンティティをデコードしてプレーン テキストに戻します。ブラウザ上で即座に。

読み込み後はオフラインでも動作
出力:
サンプル:
プレーンテキスト / HTML
エンコード済み HTML
ここに出力が表示されます...
HTML 実体参照一覧
&&
<&lt;
>&gt;
"&quot;
'&#39;
·&nbsp;
©&copy;
®&reg;
™&trade;
€&euro;
—&mdash;
…&hellip;

主な用途

  • RSS フィード用にコンテンツをエンコードRSS フィード アイテムの説明用に HTML コンテンツをエンコードします — RSS 2.0 標準で必須。
  • HTML 出力用のユーザー入力をサニタイズユーザー提供の文字列を HTML に挿入する前にエンコードします — XSS インジェクション攻撃を防ぎます。
  • HTMLメール用の特殊文字をエンコード&、<、>、©などの文字をHTMLエンティティにエンコード。すべてのメールクライアントで正しく表示されます。
  • ウェブ表示用のユーザーコンテンツをエンコードユーザー生成コンテンツをHTMLページに表示する前にエンコードしてXSS攻撃を防ぐ。
  • XML用のコンテンツをエンコードXMLファイル、RSSフィード、サイトマップ、SOAPペイロード用の特殊文字をエンコード。

使い方

ここでのHTMLのエンコード・デコードは、手書きの正規表現置換とハードコードされた名前付きエンティティのルックアップテーブルを使ってブラウザ内で完全に行われます — サードパーティのエンコーディングライブラリもサーバーとのやり取りも不要です。一般的でない名前付きエンティティ(&aacute;や&ldquo;など)のデコードには、ツールはコストゼロのフォールバックとしてブラウザ自体のHTMLパーサーに処理を委ねます。

  1. 1
    正規表現が置換すべき文字をスキャンする
    エンコード時、2つのUnicode対応正規表現のうちいずれかが入力全体に対して実行されます:約25の一般的なHTML上重要な特殊文字を対象とした絞り込まれたパターン、またはU+007F以上のすべてのコードポイントを捕捉する広いパターンです。各一致は文字ごとに処理されます。
  2. 2
    ルックアップテーブルまたはcodePointAt()がエンティティを生成する
    名前付きエンティティの出力では、一致した文字はハードコードされたテーブル(例:& → &amp;、© → &copy;)で検索されます。10進数または16進数の出力では、String.codePointAt()がUnicodeコードポイントを取得し、&#NNN;または&#xNNN;として整形します — 正規表現がUnicodeの'u'フラグを使用しているため、サロゲートペアも正しく処理されます。
  3. 3
    単一パスの正規表現がエンティティを文字に戻す
    デコード時、単一の正規表現パスがすべてのエンティティトークン(&amp;、&#65;、&#x41;など)を識別し、それぞれを適切なハンドラーに振り分けます:16進数のparseInt(基数16)、10進数のNumber()、名前付きの逆引き、またはハードコードされたテーブルにないエンティティの場合はブラウザがネイティブに解析するinnerHTMLを持つtextarea要素で、ブラウザ内蔵のエンティティテーブルから正しい文字を返します。
  4. 4
    結果は即座に表示され、Clipboard API経由でクリップボードにコピーできる
    出力はReactのuseMemoを介してキーストロークごとに同期的に再計算されます。コピーにはnavigator.clipboard.writeText() — モダンな非同期Clipboard API — が使われ、制限されたコンテキストではサイレントにエラーがキャッチされます。

関連ツール

よくある質問