Unicode 互換性チェック
Unicode 版にアップグレードする際は、スクリプトに追加したすべてのカスタム ロジックが、Unicode データに対して実行されたときに同じ結果を生じるかどうかを検証する必要があります。スクリプトが Unicode データに対して実行されたときに、スクリプトが影響を受ける可能性があることが予測できる領域があります。
ビットおよび文字関数
以下に挙げる関数はそれぞれ、バイト位置やバイト数に基づいて値を返します。非 Unicode 版で使用される 1 バイト文字の表現から、Unicode データに使用される 2 バイト文字エンコードへ移動しても、これらの関数が正しく使用されているかどうかをチェックする必要があります。
-
ASCII( )
-
BIT( )
-
BYTE( )
-
CHR( )
-
DIGIT( )
-
HEX( )
-
MASK( )
-
SHIFT( )
バイト長と文字長は等しくない
以下の関数について、データ内の文字数とバイト数が一対一対応でと見なす方法で使用されていないことを保証するために、これらの関数がスクリプトで使用されている方法を確認する必要があります。
文字とバイト間を一対一対応と見なすロジックがあるインスタンスを見つけた場合は、そのロジックが Unicode データで正常に動作するよう、つまり、1 文字を表すために 2 バイトを使用するように調整する必要があります。STRING(1000, 4) 内の 4 など、文字列関数のパラメーターとして指定された数値は文字数を表すため、このような関数を標準的な方法で使用しても問題は発生しません。
変換関数
-
PACKED( )
-
STRING( )
-
UNSIGNED( )
-
VALUE( )
-
ZONED( )
文字列関数
-
AT( )
-
BLANKS( )
-
INSERT( )
-
LAST( )
-
LENGTH( )
-
REPEAT( )
-
SUBSTRING( )
その他の関数
-
FILESIZE( )
-
LEADING( )
-
OFFSET( )
-
RECLEN( )
Unicode 固有の関数を代用する
Galvanize の Unicode 製品は、非 Unicode データと Unicode データ間の変換をサポートする、6 個の Unicode 固有の関数をサポートしています。Galvanize の Unicode 製品で使用できる関数は、次のとおりです。
- BINTOSTR() 関数は、ZONED または EBCDIC データを対応する Unicode 文字列に変換します。これにより、ZONED または EBCDIC のデータとしてエンコードされた値を正しく表示できるようになります。
- DHEX( ) は、指定された Unicode のフィールド値に相当する 16 進数の値を返します。これは HTOU( ) の逆関数です。
- DBYTE( ) は、レコード内の指定された位置にある 2 バイト文字に相当する Unicode 文字を返します。
- DTOU( ) は、指定されたロケール設定に基づいて、日付値を正しい Unicode 文字列表示に変換します。
- HTOU( ) は、指定された 16 進数の文字列に相当する Unicode 文字列を返します。これは DHEX( ) の逆関数です。
- UTOD( ) は、ロケール固有の Unicode 文字列を Analytics の日付値に変換します。