このドキュメントでは、次のトピックについて説明します。
どうすれば既存の Natural ソースを UTF-8 フォーマットに変換できますか(Windows、UNIX、および OpenVMS のみ)。
端末エミュレーションを経由して U フォーマットを表示するときに、UNIX または OpenVMS でガーベッジが表示されるのはなぜですか。
プロファイルパラメータ CP
で定義したコードページが、存在しないか(有効な ICU コードページについては http://demo.icu-project.org/icu-bin/convexp、適切な IANA 名については http://www.iana.org/assignments/character-sets を参照)、またはプラットフォームで無効なデフォルトコードページです(例えば、EBCDIC コードページは Windows、UNIX、または OpenVMS プラットフォームでは使用できません)。
デフォルトコードページとは、プロファイルパラメータ CP
によって定義されたコードページです。 CP
が入力されない場合は、デフォルトコードページは現在のシステムコードページです。
コードページから Unicode への変換、およびその逆の変換のために Natural によって現在使用されているデフォルトコードページは、システム変数 *CODEPAGE
の内容を表示することによって知ることができます。
使用する文字およびソースを保存するプラットフォームによります。 Unicode 定数を使用する場合、文字のすべての組み合わせを保存できるのは UTF-8 のみです。 ただし、16 進 UH 定数を定義して、それをコードページソースに保存することもできます。 16 進定数の短所は、定数のすべての文字の UTF-16 エンコードを知る必要があることです。 メインフレームでは、ソースの UTF-8 フォーマットは使用できません。 UNIX および OpenVMS では、UTF-8 ソースは SPoD 経由でのみ処理できます。UNIX または OpenVMS 上でローカルに処理することはできません。
UTF-8 から UTF-16 への変換のために MOVE ENCODED
ステートメントを使用します。A フォーマット変数に対してコードページ "UTF-8" を使用する必要があります。
正しいコードページを使用しているかどうかを確認してください。 コードページが正しい場合は、選択したフォントによって、表示する文字がサポートされているかどうかを確認してください。
ソースに対して定義されているコードページが正しくありません。 ソースの内容を Unicode に変換するときに、変換エラーが発生します。 Unicode に正常に変換されるように、ソースのエンコードを変更してください。
ソースの読み取りに使用されたコードページに変換されない文字をソースに入力しました。 これらの文字を誤って入力したか、本当にソースに保存するかを確認してください。 最初の場合には、誤った文字を削除してソースを保存します。 2 つ目の場合には、ソースを UTF-8 フォーマットで保存するか、または文字が U 定数に含まれている場合は、代わりに UH 定数を使用します。
ソースのコードページに含まれていない文字を入力していない場合は、プロファイルパラメータ SRETAIN
が "OFF" に設定されているかどうかを確認します。 この設定の場合、ソースは現在のコードページで保存されます。 当該のソースが以前に別のコードページで保存された場合は、変換エラーが発生する場合があります。
Natural スタジオでは、ソースノードの[プロパティ]ダイアログボックスを呼び出します。 [一般]ページに、ソースのエンコードが表示されます。 [エンコード]テキストボックスが空の場合、ソースに対して特定のエンコードは保存されていません。 つまり、ソースを読み取るときにデフォルトのエンコードが使用されます。
Natural スタジオのリストビューウィンドウにも、リストされているすべてのオブジェクトのエンコードが表示されます。
Natural スタジオでは、ソースノードの[プロパティ]ダイアログボックスを呼び出します。 [一般]ページに、ソースのエンコードが表示されます。 これが正しいエンコードではない場合は、 ボタンを選択して変更できます。使用できるコードページのリストが表示され、ソースに対して正しいエンコードを選択できます。
正しいコードページを使用して Natural エディタでソースを開きます。 [名前をつけて保存]ダイアログボックスでエンコードとして UTF-8 を選択します。
でソースを保存し、変換の方向によって異なります。コードページの文字を Unicode に変換できない場合は、Unicode 置換文字 "U+FFFD" が使用されます。 Unicode の文字をコードページに変換できない場合は、このコードページに対して ICU によって定義されている置換文字が使用されます。
Unicode からデフォルトコードページへの変換の場合、Windows、UNIX、および OpenVMS プラットフォームでは、プロファイルパラメータ SUBCHAR
を設定することによって、置換文字を変更できます。
できません。 以前の Natural バージョンでは、コードページ情報は認識されません。UTF-8 ソースは、現在のシステムコードページとして解釈されます。
コードポイントを変換できないため、UTF-8 フォーマットの Natural ソースはカタログできません(Windows、UNIX、および OpenVMS のみ)。
UTF-8 フォーマットのソース内のすべての A 定数は、生成されるプログラムに保存するときに、デフォルトコードページに変換されます。 デフォルトコードページに含まれない文字を A 定数から削除するか、A 定数の代わりに U 定数を使用してください。
端末エミュレーションに出力が表示される前に、デフォルトコードページに含まれないすべての文字は、コードページの置換文字で置き換えられます。 ASCII コードページの場合、ICU 変換テーブルによって定義される置換文字が "0x1A" である場合があります。これは、UNIX または OpenVMS 端末で制御文字である場合があります。 I/O ステートメントで U フォーマットを使用する場合は、Web I/O インターフェイスを使用することを強くお勧めします。 端末エミュレーションの使用が不可欠な場合は、置換文字(SUBCHAR
)を出力可能な文字("?" など)に変更できます。
はい。ただし、SPoD クライアントのコードページをサーバーソースのコードページに設定する必要があります。
「Prerequisites for Natural Single Point of Development」(http://documentation.softwareag.com/natural/spod_prereq/prereq.htm)を参照してください。
はい。ただし、ソースのエンコードを定義している場合は、お勧めしません。
「Prerequisites for Natural Single Point of Development」(http://documentation.softwareag.com/natural/spod_prereq/prereq.htm)を参照してください。