タイトル | : HTML本文に記されたCSSの取り込みについて |
記事No | : 58 |
投稿日 | : 2007/04/21(Sat) 02:58 |
投稿者 | : 営々 |
こんにちは。
folomy巡回cpsを使っている方から「スタイルシートを受信 & 適用する設定にしていると、\が/に変換されて表示されてしまう」という話が出ていました。
また、スタイルシートを適用する設定にしていても、ブラウザではfont-family指定(MS Pゴシック)がなされているのに、CMNではfont-familyが反映されない点も不思議に思っていました。
調べてみると、こういう事らしいです。
1) folomyは、HTML本文にフォント指定用スタイルシートを埋め込んであり、その他のスタイルシート指定は外部cssファイルに記している。文字コード指定はいずれもUTF-8。なので "MS Pゴシック"というフォント指定文字列も当然UTF-8で書いてある。
2) CMNはデータを全てShift-JISで管理しているので、巡回時にまずHTML本文を全てUTF-8からShift-JISに変換する。
3) CMNが本文からスタイルシート部分(コードはShift-JIS)を切り出して、別途ダウンロードした外部cssファイル(コードはUTF-8)の後ろにくっつけ、CMNデータフォルダ中の掲示板別cssファイルに格納する。 この際、cssファイル先頭の文字コード指定はUTF-8のまま
4) 「スタイルシートを適用」オプションを有効にして表示させた場合、font-familyの優先順位は "MS Pゴシック" , sans-serifの順だが、"MS Pゴシック"というフォント指定文字列はShift-JISで書かれているので、UTF-8のcssファイル内では文字化けして無視される。CMNの表示部分を司るIEコンポーネントは、sans-serifで表示させようとする。
5) WindowsXPのIEでは、font-family : sans-serifを指定したときには日本語部分は"MS UI Gothic"、英文字は "Lucida Sans Unicode"で表示される。
6) Windows上のUnicodeフォントは、日本語のフォントに限って、/の半角記号のコードに¥の半角記号を見かけ上割り当ててあるが、"Lucida Sans Unicode"は「正常に」/で表示してしまう (詳しくは「円記号問題」でググってください)
CMNの現在の動作は「UTF-8のページはShift-JIS変換した後に本文埋め込み式スタイルシートを切り出す」という事になっているんでしょうか?
|