ODSで出力されたHTMLファイルが文字化けする

[OS]ALL
[リリース] 8.1
[キーワード] BASE, 8.1, ODS, TEMPLATE, STYLES.NOFONTDEFAULT, FONT, FACE

[質問]

ODSで作成されたHTMLファイルの日本語部分が、正しく表示されません。
(例: SAS → SAS □□□□)

[回答]

この現象は、HTMLファイルでFONTタグのFACE属性に"sans-serif"と指定されているために発生するものです。 残念ながらこのフォントは、デフォルトのStyles.Defaultスタイルテンプレートで指定されています。

他の環境では、このフォントフェイスの指定が無視されますが、Windows 98(ME)とInternet Explorer 5.5の組み合わせにおいて、 文字化けが発生することが分かっています。

回避方法として、フォントフェイスを指定しないスタイルテンプレートを作成していただき、そちらを使用してください。

下記の例は、ODS HTMLで使用されるスタイルテンプレートを編集します。
(デフォルトのODS PATH設定では、編集後のスタイルテンプレートがSASUSER.TEMPLATテンプレートストアに保存されます。)

/* スタイルテンプレート Styles.Defaultを編集します */

proc template;
   edit Styles.Default;
      style fonts
         "Font face not specified" /
         'docFont' = (,3)
         'headingFont' = (,4,Bold)
         'headingEmphasisFont' = (,4,Bold Italic)
         'FixedFont' = (,2)
         'BatchFixedFont' = (,2)
         'FixedHeadingFont' = (,2)
         'FixedStrongFont' = (,2,Bold)
         'FixedEmphasisFont' = (,2,Italic)
         'EmphasisFont' = (,3,Italic)
         'StrongFont' = (,4,Bold)
         'TitleFont' = (,5,Bold Italic)
         'TitleFont2' = (,4,Bold Italic);
   end;
run;

/* テストします */
ods html file='c:\temp\test.html' ;
proc means data=sashelp.class;
run;
ods html close;