付録I.3 数値データの扱い
- 〈この項の構成〉
(1) ワイド文字対応の属性コード
UCS-2,UCS-4,UTF-16およびUTF-32では,10進数字の「0」〜「9」,外部10進数で使用するゾーン部の英小文字「p」〜「y」,符号文字の「-」と「+」,およびCSVの固定小数点数で使用する通貨記号,小数点,コンマなどの桁修飾文字が,それぞれ2バイトまたは4バイトのワイド文字で表現されます。
ワイド文字表現の数字に対応している数値属性コードを,次の表に示します。
エンコード種別 |
1文字の長さ (単位:バイト) |
属性コード |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
2進数 |
10進数 |
数字 |
||||||||||
n |
m |
a |
b |
f |
p |
z |
x |
s |
t |
d |
||
UCS-2LE |
2 |
× |
× |
× |
× |
× |
× |
○ |
○ |
○ |
○ |
○ |
UCS-2BE |
2 |
× |
× |
× |
× |
× |
× |
○ |
○ |
○ |
○ |
○ |
UCS-4LE |
4 |
× |
× |
× |
× |
× |
× |
○ |
○ |
○ |
○ |
○ |
UCS-4BE |
4 |
× |
× |
× |
× |
× |
× |
○ |
○ |
○ |
○ |
○ |
UTF-16LE |
2 |
× |
× |
× |
× |
× |
× |
○ |
○ |
○ |
○ |
○ |
UTF-16BE |
2 |
× |
× |
× |
× |
× |
× |
○ |
○ |
○ |
○ |
○ |
UTF-32LE |
4 |
× |
× |
× |
× |
× |
× |
○ |
○ |
○ |
○ |
○ |
UTF-32BE |
4 |
× |
× |
× |
× |
× |
× |
○ |
○ |
○ |
○ |
○ |
10進数のデータ形式の詳細については,「3.2 キー属性と形式」の「SORT EE固有のデータ形式」を参照してください。
(2) キー・項目の開始位置と長さの指定
(a) 開始バイト位置
キー・項目に指定した「+開始バイト位置」から,エンコードに従って文字(数字)解析します。
エンコードの種類が「UCS-2LE」,「UCS-2BE」,「UTF-16LE」,または「UTF-16BE」の場合は「2の倍数」を開始バイト位置に指定してください。
エンコードの種類が「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,または「UTF-32BE」の場合は「4の倍数」を開始バイト位置に指定してください。
(b) 桁数
キー・項目に指定した「−桁数」をエンコードに従って文字(数字)解析します。指定する値はバイト長ではなく,文字(数字や符号)の桁数です。
SORT EEでは,指定された桁数を次の表に示すバイト長に換算して操作します。
エンコード種別 |
1桁のバイト長 |
備考(例) |
---|---|---|
ASCII |
1 |
キー「z+0-4」の長さは,4×1=4バイトです。 |
SJIS |
||
EUC-JP |
||
EUC-HJ |
||
UTF-8 |
||
UCS-2LE |
2 |
キー「z+0-4」の長さは,4×2=8バイトです。 |
UCS-2BE |
||
UTF-16LE |
||
UTF-16BE |
||
UCS-4LE |
4 |
キー「z+0-4」の長さは,4×4=16バイトです。 |
UCS-4BE |
||
UTF-32LE |
||
UTF-32BE |