Opera CSSバグリスト

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

症状

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>

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

補足

UTF-8で記述した文書を、ブラウザのエンコード指定をUTF-8に指定した状態(メニューの[表示]→[エンコード]→[Unicode]→[UTF-8]を選択する)で表示すると実体参照で指定した文字が表示されるようになるそうです。しかし、エンコード指定が[自動選択]の場合はUTF-8で記述した文書であっても実体参照の文字が表示されません。

修正状況

報告書き込み

このWinIEバグ、Opera7.23(Win98SE)でも起こる場合がある。
但し文字化けはしない。何も表示されずそこが空白になる。
BODY{
font-family:'文字鏡契冲明朝','CX古典ミン-R','癸羊明朝',MingLiu,"MS 明朝", 'ヒラギノ明朝 Pro W3',"平成明朝", Micho, serif;
}
.unicode {font-family:/*'Lucida Sans Unicode'*/,'Arial Unicode MS', "MS 明朝", "平成明朝", Micho, serif;}
<p><span class="unicode">&#32083;</span>秀実によれば……</p>
上記のソースで'文字鏡契冲明朝'をコメント・アウトするとバグは起きなくなる。
'文字鏡契冲明朝'を持ってないパソコンでもバグは起きないはず。
つまり特定のフォントを親要素に指定してる場合だけ、.unicodeが上書きできなくなるわけ。
Opera以外のNetscape7やIE6ではこのバグは起きず、ちゃんと文字が表示された。