FIRST CH TOOLS / 19 HTML ESCAPE

HTMLエンティティ・特殊文字エスケープ/デコード

テキストを貼り付けると < > & " 'HTMLエンティティへ変換します。逆に &amp;&#39;元の文字へ戻すのも同じ画面で。どちらの欄に入力しても即時に反対側へ反映され、二重エスケープやセミコロンの閉じ忘れも指摘します。

どちらに入力しても即時変換されます

元のテキスト
エスケープ済み
0
入力の文字数
0
出力の文字数
0
変換した箇所
内訳
チェック結果

    エスケープは & を最初に処理するので、何度実行しても二重エスケープにはなりません&amp; がさらに &amp;amp; になるのは、すでにエスケープ済みの文字列を入れた場合です。そのときはチェック結果で知らせます)。デコードは知らないエンティティ名を勝手に消さずそのまま残し、何を残したかを一覧に出します。

    How to Use

    1. テキストを貼り付ける左の欄にHTMLやテキストを入れると、右にエスケープ結果が出ます。逆に右の欄へエンティティ入りの文字列を貼れば、左に元の文字が戻ります。
    2. 用途に合わせて設定する属性値へ入れるなら引用符の変換は必須です。文字コード指定が怪しい環境へ渡すときは、非ASCII文字を数値参照にすると化けません。
    3. コピーするコピーボタンで結果を取得します。二重エスケープ・裸の &・セミコロンの閉じ忘れ・知らないエンティティ名はチェック結果に出ます。

    About This Tool

    HTMLでは <タグの開始&文字参照の開始という意味を持っています。記事本文やコード例に生のまま書くと、ブラウザはそれを印ではなく命令として読みます。文字として見せたいときは &lt; &amp; のように書き換える必要があり、この置き換えをエスケープと呼びます。

    必ず変換すべきなのは &< の2つで、> は本文中では必須ではありません(対で書いた方が読みやすいので既定で変換します)。属性値の中では引用符の変換が必須です。title="…" の中に " が生で入ると、その時点で属性が閉じてしまい、後ろが別の属性として読まれます。ここがHTMLインジェクションの典型的な入口になります。

    アポストロフィは既定で &#39; として出力します。&apos; はXMLとHTML5にはありますがHTML 4.01には存在しないため、古い環境ではそのまま文字列として表示されることがあります。XHTMLやXMLを扱っていて名前付きの方が読みやすい場合だけ、チェックを入れて切り替えてください。

    数値文字参照&#12354; / &#x3042;)は、文字コードの指定が正しく伝わらない経路——古いメール配信システム、ASCIIしか通らない設定ファイル、文字コードの分からないCMS——へ日本語を渡すときの保険になります。逆に charset=UTF-8 が効いているページでは、読みにくくなるだけなので変換しない方が無難です。

    デコードでは、知らないエンティティ名を消しません。ブラウザは &nbsp のようにセミコロンが無いものを一部だけ救済しますが、その挙動は歴史的経緯で分かれており、パーサーによって結果が変わります。ここでは推測で変換せずそのまま残し、「セミコロンが閉じていない」と指摘します。数値文字参照のうち &#128; のようなC1領域の値は、HTML仕様の定めに従って Windows-1252 の文字(この場合は )へ読み替えます。

    ノーブレークスペース(U+00A0)は半角スペースに見えますが別の文字です。Wordやウェブページからコピーした文章に紛れ込み、コードでは「なぜか一致しない文字列」の原因になります。このツールは常に &nbsp; として書き出し、含まれていることを知らせます。

    貼り付けたテキストがブラウザの外へ出ることはありません(変換もチェックもすべて手元で動いています)。URLパラメータで直接呼び出せます: /html-escape/?text=<b>a&b</b>/html-escape/?html=%26amp%3Bnbsp%3B

    From AI Agents

    このエスケープ/デコードのロジックは、MCP(Model Context Protocol)サーバー @first-ch/tools-mcphtml_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="&lt;p&gt;5 &amp;lt; 10&lt;/p&gt;")
    
    # 非ASCIIも数値文字参照にする(文字コードが怪しい経路向け)
    html_escape(text="日本語 & ASCII", nonAscii="hex")
    
    # ファイルを読んでエスケープし、別ファイルへ書き出す
    html_escape(path="/tmp/in.txt", outputPath="/tmp/out.html")

    Other Tools