FIRST CH TOOLS / 19 HTML ESCAPE
HTMLエンティティ・特殊文字エスケープ/デコード
テキストを貼り付けると < > & " ' をHTMLエンティティへ変換します。逆に & や ' を元の文字へ戻すのも同じ画面で。どちらの欄に入力しても即時に反対側へ反映され、二重エスケープやセミコロンの閉じ忘れも指摘します。
どちらに入力しても即時変換されます
エスケープは & を最初に処理するので、何度実行しても二重エスケープにはなりません(& がさらに &amp; になるのは、すでにエスケープ済みの文字列を入れた場合です。そのときはチェック結果で知らせます)。デコードは知らないエンティティ名を勝手に消さずそのまま残し、何を残したかを一覧に出します。
よく使うエンティティ(クリックでコピー)
ここに出しているのは代表的なものだけですが、デコードはHTML 4.01の名前付き文字参照252個すべて(α のようなギリシャ文字や ♥ などの記号を含む)と、10進・16進の数値文字参照に対応しています。
How to Use
- テキストを貼り付ける左の欄にHTMLやテキストを入れると、右にエスケープ結果が出ます。逆に右の欄へエンティティ入りの文字列を貼れば、左に元の文字が戻ります。
- 用途に合わせて設定する属性値へ入れるなら引用符の変換は必須です。文字コード指定が怪しい環境へ渡すときは、非ASCII文字を数値参照にすると化けません。
- コピーするコピーボタンで結果を取得します。二重エスケープ・裸の &・セミコロンの閉じ忘れ・知らないエンティティ名はチェック結果に出ます。
About This Tool
HTMLでは < がタグの開始、& が文字参照の開始という意味を持っています。記事本文やコード例に生のまま書くと、ブラウザはそれを印ではなく命令として読みます。文字として見せたいときは < & のように書き換える必要があり、この置き換えをエスケープと呼びます。
必ず変換すべきなのは & と < の2つで、> は本文中では必須ではありません(対で書いた方が読みやすいので既定で変換します)。属性値の中では引用符の変換が必須です。title="…" の中に " が生で入ると、その時点で属性が閉じてしまい、後ろが別の属性として読まれます。ここがHTMLインジェクションの典型的な入口になります。
アポストロフィは既定で ' として出力します。' はXMLとHTML5にはありますがHTML 4.01には存在しないため、古い環境ではそのまま文字列として表示されることがあります。XHTMLやXMLを扱っていて名前付きの方が読みやすい場合だけ、チェックを入れて切り替えてください。
数値文字参照(あ / あ)は、文字コードの指定が正しく伝わらない経路——古いメール配信システム、ASCIIしか通らない設定ファイル、文字コードの分からないCMS——へ日本語を渡すときの保険になります。逆に charset=UTF-8 が効いているページでは、読みにくくなるだけなので変換しない方が無難です。
デコードでは、知らないエンティティ名を消しません。ブラウザは   のようにセミコロンが無いものを一部だけ救済しますが、その挙動は歴史的経緯で分かれており、パーサーによって結果が変わります。ここでは推測で変換せずそのまま残し、「セミコロンが閉じていない」と指摘します。数値文字参照のうち € のようなC1領域の値は、HTML仕様の定めに従って Windows-1252 の文字(この場合は €)へ読み替えます。
ノーブレークスペース(U+00A0)は半角スペースに見えますが別の文字です。Wordやウェブページからコピーした文章に紛れ込み、コードでは「なぜか一致しない文字列」の原因になります。このツールは常に として書き出し、含まれていることを知らせます。
貼り付けたテキストがブラウザの外へ出ることはありません(変換もチェックもすべて手元で動いています)。URLパラメータで直接呼び出せます: /html-escape/?text=<b>a&b</b> / /html-escape/?html=%26amp%3Bnbsp%3B
From AI Agents
このエスケープ/デコードのロジックは、MCP(Model Context Protocol)サーバー @first-ch/tools-mcp の html_escape ツールとしても提供しており、ブラウザを使わずAIエージェントから直接呼び出せます。導入方法の詳細は AIエージェントからの使い方 を参照してください。
導入
claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp
呼び出し例
# HTML特殊文字をエスケープする html_escape(text="<a href='/x'>a & b</a>") # エンティティを元の文字へ戻す html_escape(mode="unescape", text="<p>5 &lt; 10</p>") # 非ASCIIも数値文字参照にする(文字コードが怪しい経路向け) html_escape(text="日本語 & ASCII", nonAscii="hex") # ファイルを読んでエスケープし、別ファイルへ書き出す html_escape(path="/tmp/in.txt", outputPath="/tmp/out.html")
Other Tools
- 01画像→WebP一括変換WebP Converter
- 02白背景の透過White BG Remover
- 03コントラスト比チェッカーContrast Checker
- 04文字数カウントCharacter Counter
- 05llms.txt ジェネレーターllms.txt Generator
- 06JSON-LD構造化データ生成JSON-LD Generator
- 07Markdown→PDF変換MD → PDF
- 08OGPメタタグ生成ウィザードOGP Wizard
- 09faviconジェネレーターFavicon Generator
- 10TikTok投稿ツールTikTok Publisher
- 11文字コード・改行コード変換Encoding Converter
- 12画像→AVIF変換+picture生成AVIF Converter
- 13テストデータ生成Test Data Generator
- 14Marp Markdown→スライドMarp Slides
- 15テキスト・コード差分チェッカーDiff Checker
- 16Cron式ビジュアル解説&発火日時Cron Explainer
- 17Base64 & Data URI変換Base64 & Data URI
- 18URLパラメータ分解・UTMタグ編集URL Parameters
- 20JSON ⇄ YAML 相互変換&整形JSON ⇄ YAML
- 21PX ⇄ REM / EM 単位変換&スケール表PX ⇄ REM / EM
- 22Colorコード変換&アルファ透過Color Converter
- 23MD5 / SHA-256 ハッシュ生成Hash Generator
- 24JWTデコーダー&有効期限チェッカーJWT Decoder
- 25User-Agent解析&デバイス判定User-Agent Parser
- 26UUID (v4) & ULID 一括生成UUID & ULID Generator
- 27アスペクト比計算&レスポンシブサイズAspect Ratio Calculator