(57)【要約】【課題】データベースに確保する容量を抑制してサロゲートペア対応文字をサポートする。【解決手段】データベース２０に文字列を書き込む書き込み手段１と、サロゲートペア対応文字を外字コードに変換するコード変換手段２と、サロゲートペア対応文字を外字コードに変換するためのコード変換テーブル５と、データベース２０から文字列を読み出す読み込み手段３と、外字コードからサロゲートペアコードに変換するコード逆変換手段４と、外字コードをサロゲートペア対応文字に変換するためのコード逆変換テーブル６とを備えるコード変換装置１０と、データベース２０とを有する。【選択図】図１
2008242992.tif 000002
【特許請求の範囲】
【請求項１】
データベースに格納する文字列のコードを変換するコード変換システムにおいて、
前記データベースに対してサロゲートペア対応文字の書き込みが発生した場合に、当該サロゲートペア対応文字を所定の外字コードに変換して前記データベースに書き込むコード変換手段を備えることを特徴とする文字列格納システム。
【請求項２】
前記コード変換手段は、
前記データベースに対して外字文字の読み出しが発生した場合に、当該外字文字をサロゲートペアコードに変換することを特徴とする請求項１に記載の文字列格納システム。
【請求項３】
前記コード変換手段は、
サロゲートペア対応文字と外字文字とを対応付けたコード変換テーブルを有することを特徴とする請求項１又は請求項２に記載の文字列格納システム。
【請求項４】
変換する外字コードは、基本多言語面の私用領域の一部を使用することを特徴とする請求項１から請求項３のいずれか１項に記載の文字列格納システム。
【請求項５】
データベースに格納する文字列のコードを変換する文字列格納装置において、
前記データベースに対してサロゲートペア対応文字の書き込みが発生した場合に、当該サロゲートペア対応文字を所定の外字コードに変換して前記データベースに書き込むコード変換手段を備えることを特徴とする文字列格納装置。
【請求項６】
前記コード変換手段は、
前記データベースに対して外字文字の読み出しが発生した場合に、当該外字文字をサロゲートペアコードに変換することを特徴とする請求項５に記載の文字列格納装置。
【請求項７】
前記コード変換手段は、
サロゲートペア対応文字と外字文字とを対応付けたコード変換テーブルを有することを特徴とする請求項５又は請求項６に記載の文字列格納装置。
【請求項８】
変換する外字コードは、基本多言語面の私用領域の一部を使用することを特徴とする請求項５から請求項７のいずれか１項に記載の文字列格納装置。
【請求項９】
データベースに格納する文字列のコードを変換する文字列格納方法であって、
前記データベースに対してサロゲートペア対応文字の書き込みが発生した場合に、当該サロゲートペア対応文字を所定の外字コードに変換して前記データベースに書き込むコード変換ステップを有することを特徴とする文字列格納方法。
【請求項１０】
前記コード変換ステップにおいて、
前記データベースに対して外字文字の読み出しが発生した場合に、当該外字文字をサロゲートペアコードに変換することを特徴とする請求項９に記載の文字列格納方法。
【請求項１１】
前記コード変換ステップにおいて、
サロゲートペア対応文字と外字文字とを対応付けたコード変換テーブルを用いることを特徴とする請求項９又は請求項１０に記載の文字列格納方法。
【請求項１２】
変換する外字コードは、基本多言語面の私用領域の一部を使用することを特徴とする請求項９から請求項１１のいずれか１項に記載の文字列格納方法。
【請求項１３】
データベースに格納する文字列のコードを変換する文字列格納装置上で実行されるプログラムであって、
前記文字列格納装置に、
前記データベースに対してサロゲートペア対応文字の書き込みが発生した場合に、当該サロゲートペア対応文字を所定の外字コードに変換して前記データベースに書き込むコード変換機能を実現させることを特徴とするプログラム。
【請求項１４】
前記コード変換機能において、
前記データベースに対して外字文字の読み出しが発生した場合に、当該外字文字をサロゲートペアコードに変換することを特徴とする請求項１３に記載のプログラム。
【請求項１５】
前記コード変換機能において、
サロゲートペア対応文字と外字文字とを対応付けたコード変換テーブルを用いることを特徴とする請求項１３又は請求項１４に記載のプログラム。
【請求項１６】
変換する外字コードは、基本多言語面の私用領域の一部を使用することを特徴とする請求項１３から請求項１５のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに格納する文字列のコードを変換する文字列格納システム、文字列格納装置、文字列格納方法、プログラムに関するものである。
【背景技術】
【０００２】
従来、特許文献１（特開平１１−１９５０１３号公報）にも一例が開示されているように、サロゲートペア対応文字をサポートしていないデータベース（ＤＢ）では、当該データベースへの格納文字符号化形式がＵＴＦ１６の場合において１文字が２バイトで設計され、ＵＴＦ８の場合において１文字が最大３バイトで設計されていた。
【特許文献１】特開平１１−１９５０１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来のサロゲートペア対応文字をサポートしていないデータベースは、以下のような課題を有していた。
【０００４】
第１に、サロゲートペアに対応する文字をデータベースに格納する場合、データベースに格納する文字数を保証するため、従来に比べ１．３倍から２倍の容量のデータベースを確保する必要があるという問題があった。
【０００５】
すなわち、サロゲートペア対応文字をサポートしようとした場合、ほとんど使用されることがないサロゲートペア対応文字のためにデータベースへの格納文字符号化形式がＵＴＦ１６の場合において１文字に最大４バイトを必要とするため、要求される格納容量が倍になり、また、ＵＴＦ８の場合において１文字に最大４バイトを必要とするため、要求される格納容量が約１．３倍となって、ほとんど使用されることがないサロゲートペア対応文字をサポートするには格納容量の無駄が多いという問題があった。
【０００６】
第２に、１文字の最大バイト数が変更になるため、既存データベースの再構築が必要であった。
【０００７】
（目的）
本発明の目的は、データベースに確保する容量を抑制してサロゲートペア対応文字をサポートすることにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため本発明は、データベースに格納する文字列のコードを変換するコード変換システムにおいて、前記データベースに対してサロゲートペア対応文字の書き込みが発生した場合に、当該サロゲートペア対応文字を所定の外字コードに変換して前記データベースに書き込むコード変換手段を備えることを特徴とする。
【０００９】
（作用）
上記構成によって、本発明によるコード変換システムは、外字コードを意識することなく、サロゲートペア対応文字を所定の外字コードに変換する。
【発明の効果】
【００１０】
本発明によれば、以下のような効果が達成される。
【００１１】
第１に、データベースへの格納文字符号化形式がＵＴＦ１６の場合において、データベースにおける文字列の格納容量が、従来に比べ５０％削減できる。
【００１２】
その理由は、コード変換手段によってサロゲートペア対応文字が外字コードに変換されてデータベースに対して格納されるため、データベースへの格納文字符号化形式がＵＴＦ１６の場合において１文字が必ず２バイトにおさまり、データベースに格納される文字にサロゲートペア対応文字が含まれる可能性がある場合に比べて格納容量が１／２になるからである。
【００１３】
第２に、データベースへの格納文字符号化形式がＵＴＦ８の場合において、データベースにおける文字列の格納容量が、従来に比べ２５％削減できる。
【００１４】
その理由は、コード変換手段によってサロゲートペア対応文字が外字コードに変換されてデータベースに対して格納されるため、データベースへの格納文字符号化形式がＵＴＦ８の場合において１文字が必ず３バイトにおさまり、データベースに格納される文字にサロゲートペア対応文字が含まれる可能性がある場合に比べて格納容量が１／３になるからである。
【００１５】
第３に、データベースに格納される文字にサロゲートペア対応文字が入力されても、データベースが格納できる１文字あたりの最大バイト数に変更がないため、既存データベースの再構築が不要になる。
【発明を実施するための最良の形態】
【００１６】
（第１の実施の形態）
以下、本発明の第１の実施の形態について図を参照して詳細に説明する。
【００１７】
（第１の実施の形態の構成）
図１は、本実施の形態の構成を示すブロック図である。
【００１８】
図１を参照すると、本実施の形態によるコード変換システムは、サロゲートペアコードと外字コードを互いに変換する機能を有するコード変換装置１０と、データベース２０とを備える。
【００１９】
コード変換装置１０は、データベース２０に文字列を書き込む書き込み手段１と、サロゲートペア対応文字を外字コードに変換するコード変換手段２と、サロゲートペア対応文字を外字コードに変換するためのコード変換テーブル５と、データベース２０から文字列を読み出す読み込み手段３と、外字コードからサロゲートペアコードに変換するコード逆変換手段４と、外字コードをサロゲートペア対応文字に変換するためのコード逆変換テーブル６とを備える。
【００２０】
図２は、コード変換テーブル５の一例を説明する図である。
【００２１】
図２を参照すると、本実施の形態によるコード変換テーブル５は、昇順に配列されたサロゲートペアコード毎に、外字コードが対応付けられている。
【００２２】
図３は、コード逆変換テーブル６の一例を説明する図である。
【００２３】
図３を参照すると、本実施の形態によるコード逆変換テーブル６は、昇順に配列された外字コード毎に、サロゲートペアコードが対応付けられている。
【００２４】
図４は、本実施の形態によるコード変換装置１０のハードウェア構成例を示すブロック図である。
【００２５】
図４を参照すると、本発明によるコード変換装置１０は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメインメモリであり、データの作業領域やデータの一時退避領域に用いられる主記憶部１００２、インターネット２０００を介してデータの送受信を行う通信制御部１００３、液晶ディスプレイ、プリンタやスピーカ等の提示部１００４、キーボードやマウス等の入力部１００５、周辺機器と接続してデータの送受信を行うインタフェース部１００６、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置である補助記憶部１００７、本情報処理装置の上記各構成要素を相互に接続するシステムバス１００８等を備えている。
【００２６】
本発明によるコード変換装置１０は、その動作を、コード変換装置１０内部にそのような機能を実現するプログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品からなる回路部品を実装してハードウェア的に実現することは勿論として、上述した各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のＣＰＵ１００１で実行することにより、ソフトウェア的に実現することができる。
【００２７】
すなわち、ＣＰＵ１００１は、補助記憶部１００７に格納されているプログラムを、主記憶部１００２にロードして実行し、コード変換装置１０の動作を制御することにより、上述した各機能をソフトウェア的に実現する。
【００２８】
（第１の実施の形態の動作）
次に、本実施の形態の動作について図を参照して詳細に説明する。
【００２９】
図５は、本実施の形態によるコード変換システムの文字列の書き込み処理を示すフローチャートである。
【００３０】
図５を参照すると、データベース２０に対して文字列の書き込みが発生した場合、書き込み手段１は、書き込む文字列をコード変換手段２に渡す（ステップＳ１０１）。
【００３１】
コード変換手段２は、書き込み手段１から入力された文字列中にサロゲートペア対応文字が存在する場合、コード変換テーブル５を使用して当該文字を外字コードに変換し（ステップＳ１０２）、変換後の文字列を書き込み手段１に対して返す（ステップＳ１０３）。
【００３２】
書き込み手段１は、変換後の文字列をデータベース２０に対して書き込む（ステップＳ１０４）。
【００３３】
図６は、本実施の形態によるコード変換システムの文字列の読み出し処理を示すフローチャートである。
【００３４】
図６を参照すると、データベース２０から文字列の読み出しが発生した場合、読み込み手段３は、データベース２０から文字列を読み込み、その文字列をコード逆変換手段４に対して渡す（ステップＳ２０１）。
【００３５】
コード逆変換手段４は、読み込み手段３から入力された文字列中に外字文字が存在する場合コード逆変換テーブル６を使用して当該文字をサロゲートペアコードに変換し（ステップＳ２０２）、変換後の文字列を読み込み手段３に対して返す（ステップＳ２０３）。
【００３６】
なお、本実施の形態は、変換する外字コードに、基本多言語面（Ｂａｓｉｃ  Ｍｕｌｔｉｌｉｎｇｕａｌ  Ｐｌａｎｅ：ＢＭＰ）の私用領域の一部を使用する。また、サロゲートペアに対応する文字を基本多言語面と同じバイト数でデータベース２０に格納することができる。
【００３７】
（第１の実施の形態の効果）
本実施の形態によれば、以下の効果を達成することができる。
【００３８】
第１に、データベースへの格納文字符号化形式がＵＴＦ１６の場合において、データベースにおける文字列の格納容量が、従来に比べ５０％削減できる。
【００３９】
その理由は、コード変換装置１０によってサロゲートペア対応文字が外字コードに変換されてデータベース２０に対して格納されるため、データベース２０への格納文字符号化形式がＵＴＦ１６の場合において１文字が必ず２バイトにおさまり、データベース２０に格納される文字にサロゲートペア対応文字が含まれる可能性がある場合に比べて格納容量が１／２になるからである。
【００４０】
第２に、データベースへの格納文字符号化形式がＵＴＦ８の場合において、データベースにおける文字列の格納容量が、従来に比べ２５％削減できる。
【００４１】
その理由は、コード変換装置１０によってサロゲートペア対応文字が外字コードに変換されてデータベース２０に対して格納されるため、データベース２０への格納文字符号化形式がＵＴＦ８の場合において１文字が必ず３バイトにおさまり、データベース２０に格納される文字にサロゲートペア対応文字が含まれる可能性がある場合に比べて格納容量が１／３になるからである。
【００４２】
第３に、データベース２０に格納される文字にサロゲートペア対応文字が入力されても、データベース２０が格納できる１文字あたりの最大バイト数に変更がないため、既存データベースの再構築が不要になる。
【００４３】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】第１の実施の形態のコード変換テーブル５の一例を説明する図である。
【図３】第１の実施の形態のコード逆変換テーブル６の一例を説明する図である。
【図４】第１の実施の形態によるコード変換装置１０のハードウェア構成例を示すブロック図である。
【図５】第１の実施の形態によるコード変換システムの文字列の書き込み処理を示すフローチャートである。
【図６】第１の実施の形態によるコード変換システムの文字列の読み出し処理を示すフローチャートである。
【符号の説明】
【００４５】
１０：コード変換装置
１：書き込む書き込み手段
２：コード変換手段
３：読み込み手段
４：コード逆変換手段
５：コード変換テーブル
６：コード逆変換テーブル
２０：データベース
１００１：ＣＰＵ
１００２：主記憶部
１００３：通信制御部
１００４：提示部
１００５：入力部
１００６：インタフェース部
１００７：補助記憶部
１００８：システムバス
２０００：ネットワーク
【図１】
2008242992.tif 000003
【図２】
2008242992.tif 000004
【図３】
2008242992.tif 000005
【図４】
2008242992.tif 000006
【図５】
2008242992.tif 000007
【図６】
2008242992.tif 000008