NDW

アプリ開発やトラブルシューティング等のノウハウ、キャンプや登山の紹介や体験談など。

1. システムエンジニアリング html/jquery 実装技術 設計技術

HTML4, HTML5エスケープ(文字参照)

投稿日:2021年10月10日 更新日:

数値文字参照・文字実体参照

  • 半角の不等号(<>等)などのHTML上で直接記述できない文字や記号を表記する方法が文字参照です。
    HTMLやXMLの基になっているSGMLから提供されている手段です。
  • 文字参照では、次の2種類の表記方法があります。
    分類 説明 備考
    数値文字参照 特定文字を数値で表記 &#1234;(10進数で指定)
    &#x04D2;(16進数で指定)
    16進数指定はHTML4.0から。
    文字実体参照 特定文字を文字列で表記 &nbsp;
    &lt;

    数値文字参照: Numeric Character References, 文字実体参照: Character Entity References

HTML4, HTML5のエスケープ

  • ページを生成する際にHTML上で意味を持つ文字をそのまま出力するとクロスサイトスクリプティング(XSS)等の攻撃を受ける可能性があります。そのため、HTML上で特別な意味を持つ次の文字は文字実体参照や数値文字参照でエスケープする必要があります。
    文字 名称 文字実体参照 Unicode
    コードポイント
    数値文字参照
    (10進数)
    数値文字参照
    (16進数)
    " クォーテーション
    (quotation mark)
    &quot; 34(U+00022) &#34; &#x22
    & アンパーサンド
    (ampersand)
    &amp; 38(U+00026) &#38; &#x26
    ' アポストロフィ
    (apostrophe)
    &apos;
    ※1
    39(U+00027) &#39; &#x27
    < 小なり
    (less-than)
    &lt; 60(U+0003C) &#60; &#x3c
    > 大なり
    (greater-than)
    &gt; 62(U+0003E) &#62; &#x3e
    ※1: &apos;はHTML4の文字実体参照としては定義されていないため、HTML4でアポストロフィを使用する場合は&#39;と表記する必要があります。&apos;はXML, XHTML, HTML5で文字実体参照として定義されていることや、モダンブラウザでこれらをサポートしているので、実際にはHTML4でも&apos;を使用できるようです。
  • 細かい話をすると、要素の値として出力する場合は「& < >」をエスケープする必要があります。属性値として出力する場合は「" '」をエスケープする必要があります。

HTML4における文字実体参照

  • HTML4の文字実体参照はHTML 4.01 Specification24 Character entity references in HTML 4で定義されています。
  • HTML4の場合、一つの文字実体参照で1文字を表現しています。
    (後述しますが、HTML5では一つの文字実体参照で2文字を表現する場合があります。)
  • 上記資料から作成した文字実体参照の一覧を次からダウンロードできます。
    • CharacterReference_HTML4.txt (タブ区切り)
    • CharacterReference_HTML4.xlsx (Excelブック形式)
      (Excelで文字実体参照に対応する文字を確認したい場合、UNICHAR関数にコードポイントを指定することで表示できます。例えば、「&euro;」(ユーロの通貨記号: €)を確認したい場合は”=UNICHAR(8364)”と指定します。)

HTML5における文字実体参照







-1. システムエンジニアリング, html/jquery, 実装技術, 設計技術

関連記事

Apacheでクライアント証明書認証の方法

概要 クライアント証明書認証を行うリバースプロキシサーバを構築する方法を説明します。 フロントのリバースプロキシサーバ、バックエンドにWebアプリを配置した構成を想定しています。 リバースプロキシサー …

.NET Core(C#): MoqのSetupProperty()/SetupGet()/SetupSet()の違い

はじめに 次の環境を使用して動作確認しています。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2019(16.8.5) + C …

ASP.NET Coreを使った独自フレームワーク開発の考察

ASP.NET CoreをベースとしたWebアプリ用フレームワークを開発するためのナレッジ置き場です。 ASP.NET Core3系のMVC + Razorを使用する前提の情報です。 まだ思い付きで書 …

疎通確認用pingツール

新人君たちと本番環境の構築作業でデータセンターに入り。 構築したサーバから、既存の重要なサーバへの疎通確認を行うために、pingを何度も入力する予定とのこと。 作業時間の短縮や間違いの低減のために、こ …

.NET Core(C#): 配列/List/Dictionary/HashSet変換方法

はじめに 次の環境を使用して動作確認しています。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2019(16.8.5) + C …