NACSIS-CAT/ILLのWindows Vista対応

NACSIS-CAT/ILLのWindows Vista環境等での利用についての対策について

Windows Vista環境等でのクライアントの利用に対応するため、各文字コードインターフェイスにサロゲートペアとなるUCS外字を追加します。 また、UCS外字利用に問題のある場合のために、Windows Vistaの文字表示に対応したUTF8Eインターフェイスを追加します。 詳細につきましては、「対応の詳細について」をご覧ください。

テストサーバの公開について


下記のとおり、対策を行った専用のテスト用サーバを公開します。

  • ~平成21年3月13日(金)20:00
  • アドレス:cattest.nii.ac.jp
  • 稼働時間:平日9:00~20:00(但し、臨時で停止する場合があります)
  • データベースの状態:平成21年2月末のデータ(テスト期間終了後、テスト環境の全データを破棄します)

業務用サーバ、教育用サーバ、(通常の)テスト用サーバへの対応について

下記の予定で業務用サーバに適用します。

  • 平成21年3月23日(月)~

対応の詳細について

対策の内容は下記のとおりです。

インタフェース サポート対象文字種(入力:CATPリクエスト時) サポート対象文字種(出力:CATPレスポンス時)
JIS7 ASCII
JISX0201-Roman
JISX0208:1978
JISX0208:1983
EXC文字
JISX0212:1990
JISX0213:2000(1面)
JISX0213:2000(2面)
JISX0213:2004(1面)
(UCS外字入力可)
ASCII
JISX0201-Roman
JISX0208:1978
JISX0208:1983
EXC文字
*出力返答に含まれるJISX0213,JISX0212の文字種及び上記で表現できない文字は,UCS外字で表現
ISO2022JP ASCII
JISX0201-Roman
JISX0208:1978
JISX0208:1983
JISX0212:1990
JISX0213:2000(1面)
JISX0213:2000(2面)
JISX0213:2004(1面)
(UCS外字入力可)
ASCII
JISX0201-Roman
JISX0208:1978
JISX0208:1983
*出力返答に含まれるJISX0213,JISX0212の文字種及び上記で表現できない文字は,UCS外字で表現
UTF8 UCS-2
(UTF-8上1文字4バイトとなる文字のうち,UTF-16のコード範囲の文字を追加)
(UTF-8上1文字4バイトとなる文字種のみUCS外字入力可)
UCS-2
(UTF-8上1文字4バイトとなる文字はUCS外字で表現)
UTF8E UCS-2
(UTF-8上1文字4バイトとなる文字のうち,UTF-16のコード範囲の文字を追加)
(UTF-8上1文字4バイトとなる文字種のみUCS外字入力可)
UCS-2
(UTF-8上1文字4バイトとなる文字のうち,UTF-16のコード範囲の文字を追加)
GB/GBK チェックは行わない(現行どおり) チェックは行わない(現行どおり)


UCS外字

  CATPリクエスト時(JIS7, ISO2022JP, UTF8, UTF8E) CATPレスポンス時 (JIS7, ISO2022JP)※2 CATPレスポンス時 (UTF8)
変換仕様 「◆Unnnn◆」を,nnnnをコード値とするUCS1文字に変換する。※1
「◆Unnnn◆◆Unnnn◆」(サロゲートペア)をUCS1文字に変換する。
「UCS1文字(コード値nnnn)がクライアント文字コードで未定義の場合,「◆Unnnn◆」に変換する。
UTF-8上で4バイトとなる文字の場合は,サロゲートペアの「◆Unnnn◆◆Unnnn◆」に変換する。
※2

UTF-8上で4バイトとなる文字の場合は,サロゲートペアの「◆Unnnn◆◆Unnnn◆」に変換する。
"◆U3402◆"→"㐂"(文字コード"U+3402", 
"◆U4E9C◆"→"亜"(文字コード"U+4E9C", 
"◆U5000◆"→"倀"(文字コード"U+5000", 
※1 "◆UD840◆◆UDC0B◆"→"𠀋"(文字コード"U+2000B", 
"㐂"(文字コード"U+3402", , JISX0213(1-14-3))→"◆U3402◆"
"倀"(文字コード"U+5000", , JISX0212(17-41), JISX2013(2-01-56))→"◆U5000◆"
"?"(文字コード"U+20000", )→"◆UD840◆◆UDC00◆"


(参考)
"亜"(文字コード"U+4E9C", , JISX0208(16-01))→"亜"(JISX0208の文字なので,UCS外字に変換されない)

※2

 

"?"(文字コード"U+2000B", )→"◆UD840◆◆UDC0B◆"


(参考)
"亜"(文字コード"U+4E9C", , JISX0208(16-01))→"亜"(JISX0208の文字なので,UCS外字に変換されない)
"㐂"(文字コード"U+3402", , JISX0213(1-14-3))→"㐂"(4バイトとならないので、UCS外字に変換されない)
"倀"(文字コード"U+5000", , JISX0212(17-41), JISX2013(2-01-56))→"倀"(4バイトとならないので、UCS外字に変換されない)

※1 新NACSIS-CAT/ILLでは非サロゲートペア文字の「◆Unnnn◆」を使用した入力はサポートされない
※2 新NACSIS-CAT/ILLではUTF-8ではないためサポートされない

漢字包摂と漢字統合インデックスについて

通常の漢字については,新たな漢字包摂,漢字統合インデックスは定義しません。
なお,既に実装済の漢字包摂に加え,(FA30-FAD9)及び(2F800-2FA1D)を追加します。 包摂先はUnicodeで規定されているとおりですが,下記の漢字については,従来の漢字包摂との整合性を取るため,下記のように定義します。

包摂前 包摂前字形
(通常fontがないため表示されません)
本来の包摂先 本来の包摂先字形 訂正した包摂先 訂正した包摂先字形
2F807 ? 5002 4F75
2F814 ? 5167 5185
2F830 ? 537D 5373
2F862 ? 59EC 59EB
2F863 ? 5A1B 5A2F
2F882 ? 5DE2 5DE3
2F8CB ? 65E3 65E2
2F8DF ? 67FA 67B4
2F8F3 ? 6B72 6B73


また,従来の包摂定義につきまして,下記の2つ定義について,修正します。

包摂前 包摂前字形 現在の定義
(修正前)
現在の字形 修正後の定義 修正後の字形 備考
F951 96FB 964B  
F94D 6DDA 6D99 6DDA→6D99の定義が存在するため

 

UCS外字(サロゲートペア)と文字フォントについて

UCS外字(サロゲートペア)と文字フォントについては、以下のようになっていますので、ご注意ください。

●リクエスト

リクエストはUTF8, UTF8E とも「◆」で囲んで入力されたサロゲートペア文字が正しく変換され、データベースに格納されます。

 

●レスポンス

UTF8:サロゲートペア文字を「◆」で囲んで入力返します。
UTF8E:サロゲートペアの文字をUTF-16エンコーディングで API 応答として返します。

 

●サロゲートペア非対応文字の場合

サロゲートペア以外の文字を「◆」で囲んで入力した場合、正しい文字への変換は行われません。

 

●UTF8Eクライアントと文字フォントについて

クライアントに文字フォントがインストールされていない場合、文字の表示がされません。対象のフォントのないクライアントはUTF8をそのままご利用ください。

 

●サロゲートペアから文字を調べる方法について

UTF8クライアントではサロゲートペアで文字が表示されます。
文字コードの計算方法は以下のとおりです。サロゲートペアは,1つ目が"D8"~"DB",2つ目が"DC"~"DF"で始まります。
16進数を2進数にし,16ビットのコードにする。
それぞれの最上位の6ビットを削り,10ビットにする。(削るビットは"110110","110111"になります)
結合し,20ビットにする。
2進数を16進数にする。
"10000"を加える。

算出された文字コードはUnihan等で実際の文字を確認できます。

例:◆UD840◆◆UDC0B◆
1101 1000 0100 0000, 1101 1100 0000 1011
00 0100 0000, 00 0000 1011
0001 0000 0000 0000 1011
1000B
2000B
"2000B"は,"𠀋"(JISX0213:1-14-2, )になります。

参考資料

Last updated
2023-05-12