UVALID は、ストリングに有効な UTF データが入っている場合はゼロ、ストリングに有効な UTF データが入っていない場合には最初の無効エレメントの索引である、FIXED BIN(31) 値を返します。
 >>-UVALID(x)---------------------------------------------------><
|
- x
- CHARACTER または WIDECHAR タイプが必要な式。
x が CHARACTER タイプの場合は、UVALID(x) は、ストリングに有効な UTF-8 データが入っていれば 0 を返し、
それ以外の場合は、最初の無効な UTF-8 データが開始しているバイトの索引を返します。
x が WIDECHAR タイプの場合は、UVALID(x) は、ストリングに有効な UTF-16 データが入っていれば 0 を返し、
それ以外の場合は、最初の無効な UTF-16 データが開始しているワイド文字の索引を返します。
なお、UVALID は、(以下の規則に従って) ストリングに有効な UTF データが入っているかどうかを示します。
バイトが特定の文字を表現するために実際に割り振られているかどうかは示しません。
UTF-8 データの場合、バイトの妥当性は、その範囲によって以下のように異なります。
- '00'x から '7f'x: 有効
- '80'x から 'c1'x: 無効
- 'c2'x から 'df'x: 後ろ 2 番目のバイトで、そのバイトが '80'x から 'bf'x の範囲にある場合は有効
- 'e0'x から 'ef'x: 後ろにさらに 2 バイトあり、以下の場合に有効
- 最初のバイトが 'e0'x で、2 番目と 3 番目のバイトがそれぞれ 'a0'x から 'bf'x、'80'x から 'bf'x の範囲にある場合
- 最初のバイトが 'e1'x から 'ec'x の範囲にあり、2 番目と 3 番目のバイトが '80'x から 'bf'x の範囲にある場合
- 最初のバイトが 'ed'x で、2 番目と 3 番目のバイトがそれぞれ '80'x から '9f'x、'80'x から 'bf'x の範囲にある場合
- 最初のバイトが 'ee'x から 'ef'x の範囲にあり、2 番目と 3 番目のバイトが '80'x から 'bf'x の範囲にある場合
- 'f0'x から 'f4'x: 後ろにさらに 3 バイトあり、以下の場合に有効
- 最初のバイトが 'f0'x で、2 番目、3 番目、および 4 番目のバイトがそれぞれ '90'x から 'bf'、'80'x から 'bf'x、'80'x から 'bf'x の範囲にある場合
- 最初のバイトが 'f1'x から 'f3'x の範囲にあり、2 番目、3 番目、および 4 番目のバイトが '80'x から 'bf'x の範囲にある場合
- 最初のバイトが 'f4'x で、2 番目、3 番目、および 4 番目のバイトがそれぞれ '80'x から '8f'x、'80'x から 'bf'x、'80'x から 'bf'x の範囲にある場合
- 'f5'x から 'ff'x: 無効
UTF-16 データの場合、ワイド文字の妥当性は、その範囲によって以下のように異なります。
- '0000'wx から '007f'wx: 有効。UTF-8 の場合は 1 バイト
- '0080'wx から '07ff'wx: 有効。UTF-8 の場合は 2 バイト
- '0800'wx から 'd7ff'wx: 有効。UTF-8 の場合は 3 バイト
- 'd800'wx から 'dbff'x: 少なくとも 'dc00'wx 以上の値を持つ 2 番目のワイド文字が後ろにある場合は有効。
Unicode サロゲート・ペアであり、UTF-8 の場合は 4 バイト
- 'dc00'wx から 'ffff'wx: 有効。UTF-8 の場合は 3 バイト
|
This information center is powered by Eclipse technology. (http://www.eclipse.org)