プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド
12c (12.2.1.2)
E82763-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

23.7 グローバリゼーションに関する問題のトラブルシューティング

多言語アプリケーションで発生する可能性のあるグローバリゼーションに関する問題の解決に役立つように、この項では次のトラブルシューティング情報を示します。

JSPファイルでの文字セットの動的な埋込み

Oracle Reportsでは、Webレポートのテンプレートはデフォルトで西欧文字コード用に構成されています。他の言語に関しては、<Meta>タグのcharset属性と<%@page%>ページ・ディレクティブの両方を使用して、すべてのJSPファイルに文字コードを指定できます。

JSPファイルに適切なキャラクタ・エンコーディングを動的に関連付けるには、次の変更を行います。

  1. rw*.htmlファイルとblank_template.jspファイルを編集します。

    1. ページ・ディレクティブを次のように変更します。

      <%@ page contentType="text/html;charset=yourIANAencoding" %>
      

      説明:

      yourIANAencodingはIANA定義の文字セット名で、NLS_LANG変数のNLS_CHARACTERSET部分に対応しています。

    2. <Head>タグ内の<Meta>タグを次のように変更します。

      <meta http-equiv="Content-Type"
      content="text/html;charset=yourIANAencoding" />
      

      注意:

      テンプレート・ファイルのrw*.htmlblank_template.jspは、ORACLE_HOME/reports/templates/ディレクトリにあります。

  2. (ORACLE_HOME/reports/templates/にある)template.xslファイルを編集します。

    1. <xsl:output>タグを次のように変更します。

      <xsl:output
           method="jsp"
           indent="yes"
           encoding="yourIANAencoding"
         />
      

      説明:

      yourIANAencodingはIANA定義の文字セット名で、NLS_LANG変数のNLS_CHARACTERSET部分に対応しています。

    2. ファイルにページ・ディレクティブを追加します。

      <%@ page contentType="text/html;charset=yourIANAencoding" %>
      
    3. <HEAD>タグ内の<META>タグを次のように追加または変更します。

      <meta http-equiv="Content-Type"
      content="text/html;charset=yourIANAencoding" />
      

      説明:

      yourIANAencodingはIANA定義の文字セット名で、NLS_LANG変数のNLS_CHARACTERSET部分に対応しています。

グローバリゼーション・サポートの環境変数の設定

Tk2Motif.rgbファイルには、Motif版のOracle Toolkitのリソース設定が含まれます。たとえば、Oracle Reportsで使用する文字セット(NLS_CHARACTERSETで指定)とXフォントと間におけるフォント・マッピングが指定されます。

Oracle Reportsは、このファイルをディレクトリ$DOMAIN_HOME\config\fmwconfig\components\ReportsToolsComponent\<reports_tools_name>\tools\admin\language内で検索します。ここでlanguageNLS_LANGの言語設定から導出されます。

ファイルが存在しない場合は、Oracle Reportsは$DOMAIN_HOME\config\fmwconfig\components\ReportsToolsComponent\<reports_tools_name>\tools\admin内のデフォルト・バージョンを検索します。このバージョンは、西ヨーロッパ言語の文字セットであるWEISO8859P1用に構成されています。

NLS_LANGまたはNLS_CHARACTERSETで、NLS_LANGに設定している言語に通常使用されない文字セットを指定すると、Oracle Reportsによってエラーが生成されます。

たとえば、NLS_LANG=AMERICAN_AMERICA.JA16EUCを設定した場合、Oracle Reportsはディレクトリ$DOMAIN_HOME\config\fmwconfig\components\ReportsToolsComponent\<reports_tools_name>\tools\admin内でTk2Motif.rgbを検出します。NLS_LANGに設定した言語はAMERICANであり、AMERICANには言語サブディレクトリが関連付けられていないため、Oracle Reportsではデフォルトのファイルが使用されます。このバージョンはWE8ISO8859P1用に設計されており、使用するNLS_LANG文字セットはJA16EUCであるため、Oracle ReportsによってREP-3000エラーが生成されます。

この問題を回避するには、環境変数TK_UNKNOWNの値を、使用する文字セット固有のTk2Motif.rgbファイルの場所に設定します。

たとえば、NLS_LANG=AMERICAN_AMERICA.JA16EUCの場合、TK_UNKNOWN=$DOMAIN_HOME\config\fmwconfig\components\ReportsToolsComponent\<reports_tools_name>\tools\admin\JAを設定します。使用する言語がAMERICANに設定されていても、Oracle Reportsでは、JA言語サブディレクトリのTk2Motif.rgbファイルが使用されます。

WE8ISO8859P15文字セット使用時に文字化けしたフォントの修正

UNIXでwe8iso8859p15文字セットを使用してマルチバイト・レポートを実行すると、文字化けした出力が表示される場合があります。

この問題を回避する手順は、次のとおりです。

  1. デフォルトのプリンタの.ppdファイルに、使用しているフォントのエントリを作成します。このファイルは、次のディレクトリにあります。

    $ORACLE_HOME/guicommon/tk/admin
    

    注意:

    これらのエントリは、レポート出力で文字化けして表示されているフォントに対して作成します。

  2. このフォントのAFMファイルのコード体系がAdobeStandardEncodingの場合は、FontSpecificに設定します。したがって、AFMファイルの次のエントリを変更します。

    EncodingScheme AdobeStandardEncoding
    

    これを、次のように変更する必要があります。

    EncodingScheme FontSpecific
    

エンコードされたJSPレポートのオープンまたは実行

JSPレポートのキャラクタ・エンコーディング(EUC-JPなど)が、NLS_LANG環境変数の文字セット部分(JA16SJISなど)と異なる場合は、次のエラーが発生します。

この問題を回避するには、JSPレポートのキャラクタ・エンコーディングを、Oracle ReportsのNLS_LANG変数の文字セット部分に対応するIANA定義文字セットに一致させる必要があります。

例:

JSPレポートのエンコーディング:

<%@ page contentType="text/html;charset=EUC-JP" %>
<META http-equiv="Content-Type" content="text/html;charset=EUC-JP">

このJSPファイルを、文字セット(EUC-JP)でエンコードする必要があります。

Oracle Reportsのエンコーディング:

NLS_LANG=JAPANESE_JAPAN.JA16EUC

この例では、JSPレポートのエンコーディング(EUC-JP)が、Oracle ReportsのNLS_LANGの文字セット部分、つまりJA16EUCと一致しています。

ERR-063001 xxx.dtd nullの解決

XMLデータ・ソースに対してレポートを作成するとき、XMLファイル(データ・ソース)とDTDの両方のエンコーディングを、Oracle Reportsのエンコーディングに一致させる必要があります。

XMLレポートを表(たとえば、日本語の表)に対して作成する場合、グループ要素名は表の言語(つまり日本語)になります。データ・ソースに一致させるには、DTDのグループ要素名を日本語に設定する必要があります。XMLファイルおよびDTDファイルには、日本語をサポートするものであればどのようなエンコードでも実行できます(Shift_JISEUC-JPUTF-8など)。ただし、XMLデータ・ソースとDTDのエンコーディングがOracle Reportsと異なると、次のエラーが表示されます。

ERR-063001 xxx.dtd null

注意:

XMLスキーマを使用してルールを定義した場合、このエラーは表示されません。

この問題を回避するには、XMLレポートのデータ・ソースXMLファイルとDTDファイルの両方を、Reports RuntimeのNLS_LANGの文字セット部分にエンコードする必要があります。

たとえば、NLS_LANG=JAPANESE_JAPAN.JA16SJISの場合、データ・ソースXMLファイルとDTDファイルの両方を、Shift_JISにエンコードする必要があります。

HP-UXの日本語環境でのOracle Reportsの実行

HP-UXの日本語環境で、NLS_LANG=JAPANESE_JAPAN.JA16SJISと設定してOracle Reportsを使用する場合、Oracle Reportsを使用する前に、該当するTk2Motif.rgbファイルを変更する必要があります。これは、EUCにエンコードされた日本語リソースがこのファイルに含まれるためです。

Tk2Motif.rgbファイルをShift-JISエンコーディングに変換するか、このファイルから最後の7つのエントリを削除します。そうしないと、Oracle Reportsが失敗する場合があります。


注意:

日本語環境に使用するTk2Motif.rgbファイルは、次のとおりです。

$DOMAIN_HOME/config/fmwconfig/components/ReportsToolsComponent/<reports_tools_name>/guicommon/tk/admin/JA.