実体参照で表記した文字が正しく表示されない

症状

Unicodeを使用しないと表現できない文字などを実体参照で表記するとき、その文字のデータを含むフォントが存在する環境でも文字が表示されない場合がある。

例示

<ul>
<li style="font-family:'Lucida Sans Unicode',sans-serif;">Lucida &#32083;</li>
<li style="font-family:'Arial',sans-serif;">Arial &#32083;</li>
<li style="font-family:'Tahoma',sans-serif;">Tahoma &#32083;</li>
<li style="font-family:'Times New Roman',sans-serif;">Times &#32083;</li>
</ul>
  • Lucida 絓
  • Arial 絓
  • Tahoma 絓
  • Times 絓

font-familyプロパティで指定した欧文フォントには漢字が含まれていないので、sans-serifフォント(例えば「MS ゴシック」)で漢字が表示されるはずです。Win98以降に含まれる「MS ゴシック」は&#32083;で表される文字(糸偏の右に「圭」)のデータを持っているので、該当する文字が表示されるはずです。

スクリーンショット

WinIE6.0WinIE6.0(WindowsXP)

WinIE6.0WinIE6.0(WindowsMe)

補足

Win98以降に含まれている「MS (P)ゴシック」や「MS (P)明朝」は、補助漢字(JIS X0212)で定義されている文字のデータを含んでいます。従って、フォントを追加していない状態でもこれらの文字(&#32083;で表される文字もJIS X0212で定義されています)は表示できるはずです。

font-familyの指定に依存しない不具合である可能性があります。以下の例ではfont-familyの指定はありませんが、特定のサイズでのみ実体参照した文字が化ける場合があるそうです。

<ul>
<li style="font-size:15px">&#x25B6;&#x25B7;&#x25BA; 15px</li>
<li style="font-size:16px">&#x25B6;&#x25B7;&#x25BA; 16px</li>
<li style="font-size:17px">&#x25B6;&#x25B7;&#x25BA; 17px</li>
<li style="font-size:18px">&#x25B6;&#x25B7;&#x25BA; 18px</li>
<li style="font-size:19px">&#x25B6;&#x25B7;&#x25BA; 19px</li>
<li style="font-size:20px">&#x25B6;&#x25B7;&#x25BA; 20px</li>
</ul>
  • ▶▷► 15px
  • ▶▷► 16px
  • ▶▷► 17px
  • ▶▷► 18px
  • ▶▷► 19px
  • ▶▷► 20px

Ns7.1Netscape7.1

修正状況

  • WinIEをWin9x/Meで実行したときに不具合が発生することがあります。

関連記事

スポンサーリンク

RANK関数 順位を求める

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る