このドキュメントでは、次のトピックについて説明します。
プロファイルパラメータ CP
で定義したコードページが、存在しないか(有効な ICU コードページについては http://demo.icu-project.org/icu-bin/convexp、適切な IANA 名については http://www.iana.org/assignments/character-sets を参照)、またはプラットフォームで無効なデフォルトコードページです(例えば、EBCDIC コードページは Windows、UNIX、または OpenVMS プラットフォームでは使用できません)。
デフォルトコードページとは、プロファイルパラメータ CP
の評価の結果のコードページです。CP
が入力されていない場合、現在のオペレーティングシステムコードページがデフォルトコードページとなります。
Natural for UNIX によってサポートされているプラットフォームでは、必ず CP
パラメータを定義する必要があります。これは、ICU のデフォルトが UNIX プラットフォームごとに異なって定義されている場合があり、この定義も、新しい ICU バージョンを持つ特定のプラットフォームで変わる場合があるためです。
コードページから 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 スタジオでは、ソースノードの[Properties]ダイアログボックスを呼び出します。[General]ページに、ソースのエンコードが表示されます。[Encoding]テキストボックスが空の場合、ソースに対して特定のエンコードは保存されていません。つまり、ソースを読み取るときにデフォルトのエンコードが使用されます。
Natural スタジオのリストビューウィンドウにも、リストされているすべてのオブジェクトのエンコードが表示されます。
Natural スタジオでは、ソースノードの[Properties]ダイアログボックスを呼び出します。[General]ページに、ソースのエンコードが表示されます。これが正しいエンコードではない場合は、[ ]ボタンを選択して変更できます。使用できるコードページのリストが表示され、ソースに対して正しいエンコードを選択できます。
正しいコードページを使用して Natural エディタでソースを開きます。[Save As]ダイアログボックスでエンコードとして UTF-8 を選択します。
]でソースを保存し、[変換の方向によって異なります。コードページの文字を Unicode に変換できない場合は、Unicode 置換文字 "U+FFFD" が使用されます。Unicode の文字をコードページに変換できない場合は、このコードページに対して ICU によって定義されている置換文字が使用されます。
Unicode からデフォルトコードページへの変換の場合、プロファイルパラメータ SUBCHAR
を設定することによって、置換文字を変更できます。
いいえ。以前の Natural バージョンでは、コードページ情報は認識されません。UTF-8 ソースは、現在のシステムコードページとして解釈されます。
コードポイントを変換できないため、UTF-8 フォーマットの Natural ソースはカタログできません。
UTF-8 フォーマットのソース内のすべての A 定数は、生成されるプログラムに保存するときに、デフォルトコードページに変換されます。デフォルトコードページに含まれない文字を A 定数から削除するか、A 定数の代わりに U 定数を使用してください。
端末エミュレーションに出力が表示される前に、デフォルトコードページに含まれないすべての文字は、コードページの置換文字で置き換えられます。ASCII コードページの場合、ICU 変換テーブルによって定義される置換文字が "0x1A" である場合があります。これは、UNIX
または OpenVMS 端末で制御文字である場合があります。I/O ステートメントで U フォーマットを使用する場合は、Natural Web I/O インターフェイスを使用することを強くお勧めします。端末エミュレーションの使用が不可欠な場合は、置換文字(SUBCHAR
)を出力可能な文字("?" など)に変更できます。
はい。ただし、SPoD クライアントのコードページをサーバーソースのコードページに設定する必要があります。
http://documentation.softwareag.com/natural/spod_prereq/prereq.htm の「Prerequisites for Natural Single Point of Development」(Empower のログインが必要です)も参照してください。
はい。ただし、ソースのエンコードを定義している場合は、お勧めしません。
http://documentation.softwareag.com/natural/spod_prereq/prereq.htm の「Prerequisites for Natural Single Point of Development」(Empower のログインが必要です)も参照してください。