4

CC コンパイラ (CC: Sun C++ 5.9 SunOS_sparc Patch 124863-01 2007/07/2) を使用して、SUN Solaris で C++ アプリケーションをコンパイルしました。アプリケーションは、グローバリゼーションのために ICU サポートを使用しています。ただし、アプリケーションを実行すると、メソッドucnv_open("ibm-9448_X100-2005", &status) でエラーが発生しました。

19-Jun 12:12:27 [0]:error opening ICU converter: U_FILE_ACCESS_ERROR


XalanCtrl::XalanCtrl()
  :dLanguage  ( "" ),
   dLegendPage( "" ),
   dLayoutDir ( "" ),
   dBillDocuRoot(""),
   dBillImageRoot("")
{
    dpTransformer = new XalanTransformer();
    myCallback = new CallbackHandler();

  // Create ICU converter
    UErrorCode status=U_ZERO_ERROR;
    const char *erMes;

    ICUcnv = ucnv_open("ibm-9448_X100-2005", &status);
    if(U_FAILURE(status))
     {
      erMes=u_errorName(status );
      tout0 << "error opening ICU converter: " << erMes << endl;
      terr << "FATAL error opening ICU converter: " << erMes << endl;
      throw std::runtime_error( "error opening ICU converter" );
     }
 // Create the ICU buffer used for transcoding
    ICUSize=1024;
    ICUBuffer=new char[ICUSize];
}

同じアプリケーションは完全に動作していますが、別の環境でコンパイルされています。これは、アプリケーションのビルドに関連していますか?それともコンパイラに関連していますか? IUC 変数または構成が設定されていないことが予想されますが、わかりません。この種の問題を解決する方法について何か考えはありますか?

どんな助けでも大歓迎です:)

前もって感謝します

よろしく、

4

2 に答える 2

0

ibm-9448_X100-2005正確なコンバーターが本当に必要な場合に使用できます。これは内部名であり、ほとんどの人はwindows-1256正しいエイリアスを使用して取得します。とはいえ、他のコンバーターは動作しますか? あなたのICUがその正確なコンバーターなしで構築された可能性はありますか?

于 2013-06-22T01:56:23.500 に答える