バージョン 6.3.3
 —  Unicode およびコードページのサポート  —

よくある質問

このドキュメントでは、次のトピックについて説明します。


起動エラー「Invalid code page specified」が表示されるのはなぜですか。

プロファイルパラメータ CP で定義したコードページが、存在しないか(有効な ICU コードページについては http://demo.icu-project.org/icu-bin/convexp、適切な IANA 名については http://www.iana.org/assignments/character-sets を参照)、またはプラットフォームで無効なデフォルトコードページです(例えば、EBCDIC コードページは Windows、UNIX、または OpenVMS プラットフォームでは使用できません)。

Top of page

"デフォルトコードページ" とは何ですか。

デフォルトコードページとは、プロファイルパラメータ CP によって定義されたコードページです。 CP が入力されない場合は、デフォルトコードページは現在のシステムコードページです。

Top of page

どのデフォルトコードページが現在使用されていますか。

コードページから Unicode への変換、およびその逆の変換のために Natural によって現在使用されているデフォルトコードページは、システム変数 *CODEPAGE の内容を表示することによって知ることができます。

Top of page

すべての Natural ソースを UTF-8 フォーマットで保存する必要がありますか。

使用する文字およびソースを保存するプラットフォームによります。 Unicode 定数を使用する場合、文字のすべての組み合わせを保存できるのは UTF-8 のみです。 ただし、16 進 UH 定数を定義して、それをコードページソースに保存することもできます。 16 進定数の短所は、定数のすべての文字の UTF-16 エンコードを知る必要があることです。 メインフレームでは、ソースの UTF-8 フォーマットは使用できません。 UNIX および OpenVMS では、UTF-8 ソースは SPoD 経由でのみ処理できます。UNIX または OpenVMS 上でローカルに処理することはできません。

Top of page

どうすれば Natural コードで UTF-8 エンコードを処理できますか。

UTF-8 から UTF-16 への変換のために MOVE ENCODED ステートメントを使用します。A フォーマット変数に対してコードページ "UTF-8" を使用する必要があります。

Top of page

一部の文字が正しく表示されないのはなぜですか。

正しいコードページを使用しているかどうかを確認してください。 コードページが正しい場合は、選択したフォントによって、表示する文字がサポートされているかどうかを確認してください。

Top of page

Natural ソースを編集するときにエラーが発生するのはなぜですか。

ソースに対して定義されているコードページが正しくありません。 ソースの内容を Unicode に変換するときに、変換エラーが発生します。 Unicode に正常に変換されるように、ソースのエンコードを変更してください。

Top of page

Natural ソースを保存するときにエラーが発生するのはなぜですか。

ソースの読み取りに使用されたコードページに変換されない文字をソースに入力しました。 これらの文字を誤って入力したか、本当にソースに保存するかを確認してください。 最初の場合には、誤った文字を削除してソースを保存します。 2 つ目の場合には、ソースを UTF-8 フォーマットで保存するか、または文字が U 定数に含まれている場合は、代わりに UH 定数を使用します。

ソースのコードページに含まれていない文字を入力していない場合は、プロファイルパラメータ SRETAIN が "OFF" に設定されているかどうかを確認します。 この設定の場合、ソースは現在のコードページで保存されます。 当該のソースが以前に別のコードページで保存された場合は、変換エラーが発生する場合があります。

Top of page

Natural ソースのエンコードはどうすればわかりますか。

Natural スタジオでは、ソースノードの[プロパティ]ダイアログボックスを呼び出します。 [一般]ページに、ソースのエンコードが表示されます。 [エンコード]テキストボックスが空の場合、ソースに対して特定のエンコードは保存されていません。 つまり、ソースを読み取るときにデフォルトのエンコードが使用されます。

Natural スタジオのリストビューウィンドウにも、リストされているすべてのオブジェクトのエンコードが表示されます。

Top of page

Natural ソースのエンコードはどうすれば変更できますか。

Natural スタジオでは、ソースノードの[プロパティ]ダイアログボックスを呼び出します。 [一般]ページに、ソースのエンコードが表示されます。 これが正しいエンコードではない場合は、[変更]ボタンを選択して変更できます。使用できるコードページのリストが表示され、ソースに対して正しいエンコードを選択できます。

Top of page

どうすれば既存の Natural ソースを UTF-8 フォーマットに変換できますか(Windows、UNIX、および OpenVMS のみ)。

正しいコードページを使用して Natural エディタでソースを開きます。 [名前をつけて保存]でソースを保存し、[名前をつけて保存]ダイアログボックスでエンコードとして UTF-8 を選択します。

Top of page

文字を変換できない場合、どの置換文字が使用されますか。

変換の方向によって異なります。コードページの文字を Unicode に変換できない場合は、Unicode 置換文字 "U+FFFD" が使用されます。 Unicode の文字をコードページに変換できない場合は、このコードページに対して ICU によって定義されている置換文字が使用されます。

Unicode からデフォルトコードページへの変換の場合、Windows、UNIX、および OpenVMS プラットフォームでは、プロファイルパラメータ SUBCHAR を設定することによって、置換文字を変更できます。

Top of page

以前の Natural バージョンで UTF-8 ソースを使用できますか。

できません。 以前の Natural バージョンでは、コードページ情報は認識されません。UTF-8 ソースは、現在のシステムコードページとして解釈されます。

Top of page

UTF-8 フォーマットのソースをカタログするときに変換エラーが発生するのはなぜですか。

コードポイントを変換できないため、UTF-8 フォーマットの Natural ソースはカタログできません(Windows、UNIX、および OpenVMS のみ)。

UTF-8 フォーマットのソース内のすべての A 定数は、生成されるプログラムに保存するときに、デフォルトコードページに変換されます。 デフォルトコードページに含まれない文字を A 定数から削除するか、A 定数の代わりに U 定数を使用してください。

Top of page

端末エミュレーションを経由して U フォーマットを表示するときに、UNIX または OpenVMS でガーベッジが表示されるのはなぜですか。

端末エミュレーションに出力が表示される前に、デフォルトコードページに含まれないすべての文字は、コードページの置換文字で置き換えられます。 ASCII コードページの場合、ICU 変換テーブルによって定義される置換文字が "0x1A" である場合があります。これは、UNIX または OpenVMS 端末で制御文字である場合があります。 I/O ステートメントで U フォーマットを使用する場合は、Web I/O インターフェイスを使用することを強くお勧めします。 端末エミュレーションの使用が不可欠な場合は、置換文字(SUBCHAR)を出力可能な文字("?" など)に変更できます。

Top of page

現在の SPoD クライアントと古い SPoD サーバーを使用できますか。

はい。ただし、SPoD クライアントのコードページをサーバーソースのコードページに設定する必要があります。

Prerequisites for Natural Single Point of Development」(http://documentation.softwareag.com/natural/spod_prereq/prereq.htm)を参照してください。

Top of page

現在の SPoD サーバーと古い SPoD クライアントを使用できますか。

はい。ただし、ソースのエンコードを定義している場合は、お勧めしません。

Prerequisites for Natural Single Point of Development」(http://documentation.softwareag.com/natural/spod_prereq/prereq.htm)を参照してください。

Top of page