HTMLエンティティエンコード・デコード
Tom & Jerry <3はTom & Jerry <3になり、タグや属性の中に入れても壊れません。デコードでは<div>が山かっこに戻り、知らないエンティティ名があればお知らせします。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Tom & Jerry <3
- 計算モード
- Encode
- 結果
- Tom & Jerry <3
- エンコーディング
- html_entities
- 入力長
- 14
- 出力長
- 21
このHTMLエンティティエンコードツールは、特殊文字をHTMLエンティティのマークアップに変換し、名前付きおよび数値エンティティを通常のUnicodeテキストにデコードします。エンコードはアンパサンド、小なり記号、大なり記号、二重引用符、単一引用符を書き換え、タグや属性を壊すことなく、要素の内容や属性の中でフラグメントを安全に保ちます。デコードは&や のようなおなじみの名前付き形式に加え、10進の'や16進の'の参照も受け付け、名前付きエンティティが認識されない場合ははっきりと失敗するため、タイプミスがサイレントに本番のHTMLに生き残ることはありません。この経路は完全に決定的です。同じテキストとモードは常に同じ結果を生み、ネットワーク通信もランダムなソルトも日付依存の近道もありません。代表的な検証例として、Tom & Jerryのエンコードは Tom & Jerry になり、<div>のデコードは山括弧に戻ります。
HTMLエンティティとは何か、そしてこのツールが返す内容
HTMLエンティティは、そうしなければパーサーに誤って読まれてしまう文字の代わりとなるテキストのエスケープです。アンパサンドは文字参照を開始するため、本文中の生の&は、別のエンティティの開始ではなく文字通りのアンパサンドを意図する場合は&にしなければなりません。
山括弧はタグを開閉するため、それらの字形をマークアップ構造ではなくデータとして使いたい場合、<と>は<と>になります。引用符はしばしば属性を区切るため、"は"になり、アポストロフィはHTMLとXMLの両方の属性規則との広い互換性のため数値参照'として出力されます。
このページは、エンコード経路でその古典的なエンコードセットを実装し、デコードではその逆を実装します。一般的なXML、HTML4、広く使われるHTML5の名前の固定マップからの名前付き参照に加え、任意の有効なUnicodeスカラー値に対する10進の&#N;と16進の&#xH;の形式です。未知の名前を部分的にサイレントスキップすることはありません。
テキストとモードの読み取り方法と結果を再現可能に保つ仕組み
modeは既定でencodeとなり、decodeを明示的に受け付けます。op、direction、actionといった別名は、すでにそれらの名前を使っているスクリプトのために同じスイッチにマッピングされます。
エンコードは文字列を1文字ずつ走査し、5つの特殊文字のみをそれぞれ優先されるエンティティ形式に置き換え、文字、数字、その他のUnicodeはそのままにするため、読みやすいコピーは読みやすいままです。デコードは、セミコロンで終わる正しい形式のエンティティを探します。
文字と数字から成る名前、10進のコードポイント、あるいは#xの後の16進のコードポイントです。Unicodeスカラー範囲外またはサロゲートブロック内の数値エンティティも拒否されます。
HTMLエンティティのエンコード・デコードがマークアップのワークフローで役立つ場面
開発者は、ユーザーのテキストをテンプレートに貼り付けるとき、CMSのエクスポートが生のアンパサンドと二重エスケープされたフラグメントを混在させるとき、あるいはメールやXMLのエクスポーターが完全なサニタイザーのパスなしに属性セーフな文字列を必要とするときにHTMLエンティティに出会います。
フロントエンドチームは、レガシーなデータベースから取得したエンティティの多いコピーをデコードし、UIコンポーネントが文字通りの’のシーケンスではなく本物の引用符、ダッシュ、ノーブレークスペースをレンダリングできるようにします。
品質エンジニアは、エンティティ対応を主張するミドルウェアがリリース間で&の扱いをサイレントに変更できないよう、契約テストのために決定的なエンコード・デコードのペアを生成します。教育者は、現代のHTMLパーサーが受け付ける名前付きエンティティ、10進参照、16進参照の違いを教えるときに同じツールを使います。
このページでの計算はすべてブラウザ内で完結します。
活用例
安全なテンプレートと属性テキスト
タイトル、ラベル、ユーザーのスニペットをエンコードし、アンパサンドや山括弧がタグや属性を壊せないようにします。
よくある質問
どの文字がエンコードされますか?
エンコードモードは&、<、>、"、'を&、<、>、"、'に書き換えます。他の文字は変更されません。
名前付きエンティティが不明な場合はどうなりますか?
名前を修正するか、{のような数値エンティティを使ってください。
結果は決定的ですか?
はい。 同じテキストとモードは、ネットワーク、乱数、日付依存の挙動なしに常に同じ結果を生みます。
'や'のような数値エンティティもデコードできますか?
はい。&や のような名前付きの形に加え、'のような10進、'のような16進の参照も読み取ります。どれもセミコロンで終わっている必要があります。
アポストロフィが名前ではなく'になるのはなぜですか?
数値の形の'は、HTMLとXMLのどちらの属性の決まりでも受け付けられるためです。ほかの4つの特殊文字は、&、<、>、"というおなじみの名前を使います。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/html-entities \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Tom & Jerry <3"}'const res = await fetch("https://api.kit.forhosting.com/enc/html-entities", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Tom & Jerry <3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/html-entities",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Tom & Jerry <3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/html-entities", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Tom & Jerry <3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Tom & Jerry <3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/html-entities", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Tom & Jerry <3"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.html_entities",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
テンプレートの衛生管理やコンテンツのクリーンアップにはブラウザで無料にご利用いただき、パイプラインがCIやバックエンドサービスで再現可能なエンティティ変換を必要とする場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
HTMLエンティティとは何か、そしてこのツールが返す内容
JSONレスポンスには、変換された文字列を表すresult、encodeまたはdecodeをエコーするmode、html_entitiesに固定されたencoding、テストでサイズをアサートできるようinput_lengthとoutput_lengthが常に含まれます。デコードは、正しい形式の&...;シーケンスが何個書き換えられたかを確認できるようentities_decodedも報告します。すべての名前付きエンティティがマップで定義されているか、そうでなければリクエストがinvalid_inputで失敗するかのいずれかです。完全なDOMサニタイズ、圧縮、Markdown変換が必要な場合はそれぞれの専用エンドポイントをご利用ください。このランディングページは、フィクスチャやAPI利用者に適した安定した出力とともに、エンティティのエンコード・デコード契約のみに答えます。
テキストとモードの読み取り方法と結果を再現可能に保つ仕組み
優先されるペイロードフィールドはtextで、input、value、s、htmlといった別名を受け付けるため、フォーム、クエリ文字列、SDKクライアントは列名を変えずに同じ契約を再利用できます。完全なエンティティを形成しないむき出しのアンパサンドはそのまま残されるため、不完全な下書きが破綻することはありませんが、¬anentity;のような完全な未知の名前は、誤った参照を名指しするメッセージとともにinvalid_inputを発生させます。自動化されたパイプライン内でエンティティテーブルを自前で再実装することなく同一の数学的結果が必要な場合は、このページの無料ブラウザ実行と有料APIを組み合わせてご利用ください。無効な入力はinvalid_inputを返し課金されないため、検証は安価なままであり、成功した変換は$0.002という固定の項目価格のままです。
HTMLエンティティのエンコード・デコードがマークアップのワークフローで役立つ場面
バックエンドサービスは、動的なタイトルやラベルをHTMLスニペットや後にHTMLになるJSONに埋め込む前にエンコードし、単一の山括弧による偶発的なタグ挿入を防ぎます。API経由では成功した検索1件につき$0.002がかかり、検証に失敗したリクエストは課金されず、レスポンスが返された後は何も保存されません。この無料のインタラクティブな探索と、同一結果を返す有料APIという分割は、KITのtier-Aカタログの他のツールと同様であり、教室でのデモから自動化パイプラインへ、エンコードされた結果を変えることなく移行できます。より広範なマークアップのクリーンアップが必要なときはHTMLサニタイズや圧縮のヘルパーと、無料で決定的なテキストツールの小さなラボを構築する際は他の符号化系エンドポイントと組み合わせてご利用ください。
連携の活用例
レガシーCMSのエンティティクリーンアップ
エクスポートされたHTMLやデータベースフィールドの名前付き・数値エンティティを、現代のUI向けにプレーンなUnicodeにデコードします。
決定的なCIフィクスチャ
サービスをまたいで、ユニットテスト、ゴールデンファイル、契約チェック向けに再現可能なエンコード・デコードのペアを生成できます。
技術的な質問
HTMLエンティティエンコードツールの料金はいくらですか?
このページのブラウザ版は無料です。API経由では成功したリクエストごとに$0.002がかかり、無効な入力には課金されません。
どのモードに対応していますか?
mode=encode(既定)は特殊文字をエンティティに変換します。mode=decodeは名前付き・数値エンティティを文字に戻します。