(57)【特許請求の範囲】
【請求項１】
それぞれが異なるコード体系を有する複数のプラットフォームからなるマルチプラットフォーム環境上で実現され、前記各プラットフォーム上で動作する複数の処理プログラム間でやりとりされる文字データに対して内部コード変換機構を介してコード変換を行う文字コード変換方式において、
複数の異なるコード体系間での文字コードの対応関係をマッピング情報として保持するマッピング情報保持手段と、
前記各処理プログラムと前記内部コード変換機構との間でやりとりされる文字データに対して前記マッピング情報に基づいてコード変換を行う外部コード変換手段と、
前記外部コード変換手段によりコード変換が行われた文字データを、前記内部コード変換機構でのコード変換を前提とした所定のデータ形式に加工するデータ加工手段とを備え、
前記データ加工手段は、前記外部コード変換手段によりコード変換が行われた文字データを該文字データを引数とした文字関数の形式に加工することを特徴とする、マルチプラットフォーム環境における文字コード変換方式。
【請求項２】
前記外部コード変換手段および前記データ加工手段はともに、前記内部コード変換機構によりコード変換を行うことができない種類の文字コードに対してコード変換および所定のデータ形式への加工を行うことを特徴とする、請求項１記載のマルチプラットフォーム環境における文字コード変換方式。
【請求項３】
それぞれが異なるコード体系を有する複数のプラットフォームからなるマルチプラットフォーム環境上で実現され、前記各プラットフォーム上で動作する複数の処理プログラム間でやりとりされる文字データに対して内部コード変換機構を介してコード変換を行う文字コード変換方式において、
複数の異なるコード体系間での文字コードの対応関係をマッピング情報として保持するマッピング情報保持手段と、
前記各処理プログラムと前記内部コード変換機構との間でやりとりされる文字データに対して前記マッピング情報に基づいてコード変換を行う外部コード変換手段と、
前記外部コード変換手段によりコード変換が行われた文字データを、前記内部コード変換機構でのコード変換を前提とした所定のデータ形式に加工するデータ加工手段とを備え、
前記内部コード変換機構は、複数の異なるコード体系間での通常のコード変換に加えて、２バイトからなる文字コードのうち下位の１バイトのみを取り出すコード変換を行うことができるよう構成されており、
前記データ加工手段は、前記外部コード変換手段によりコード変換が行われた文字データを１バイト単位で抽出するとともに、この抽出された１バイト単位の文字データを、該文字データを下位の１バイトとした２バイト単位の文字データの形式に加工することを特徴とする、マルチプラットフォーム環境における文字コード変換方式。
【請求項４】
それぞれが異なるコード体系を有する複数のプラットフォームからなるマルチプラットフォーム環境上で実現され、前記各プラットフォーム上で動作する複数の処理プログラム間でやりとりされる文字データに対して内部コード変換機構を介してコード変換を行う文字コード変換方式において、
複数の異なるコード体系間での文字コードの対応関係をマッピング情報として保持するマッピング情報保持手段と、
前記各処理プログラムと前記内部コード変換機構との間でやりとりされる文字データに対して前記マッピング情報に基づいてコード変換を行う外部コード変換手段と、
前記外部コード変換手段によりコード変換が行われた文字データを、前記内部コード変換機構でのコード変換を前提とした所定のデータ形式に加工するデータ加工手段と、
前記内部コード変換機構でのコード変換の設定状況に応じて前記外部コード変換手段および前記データ加工手段を制御するコード変換判断手段とを備え、
前記コード変換判断手段は、前記内部コード変換機構でのコード変換が無効化されている場合に前記外部コード変換手段によるコード変換のみを行うよう前記外部コード変換手段および前記データ加工手段を制御することを特徴とする、マルチプラットフォーム環境における文字コード変換方式。
【請求項５】
それぞれが異なるコード体系を有する複数のプラットフォームからなるマルチプラットフォーム環境上で実現され、前記各プラットフォーム上で動作する複数の処理プログラム間で内部コード変換機構を介してやりとりされる文字データに対してコード変換を行う文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記各プラットフォームを実現するコンピュータに対して、前記各処理プログラムと前記内部コード変換機構との間でやりとりされる文字データに対して複数の異なるコード体系間での文字コードの対応関係を表すマッピング情報に基づいてコード変換を行わせる手順と、
コード変換が行われた文字データを、前記内部コード変換機構でのコード変換を前提とした所定のデータ形式に加工させ、この際にコード変換が行われた文字データを該文字データを引数とした文字関数の形式に加工するような手順と、
を実行させることを特徴とする、文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
前記手順の一部は前記コンピュータ上で実行される他のプログラムによって実現され、前記文字コード変換プログラムには前記他のプログラムにより実現される手順を呼び出す命令が含まれていることを特徴とする、請求項５記載の文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプラットフォームからなるマルチプラットフォーム環境上で実現される文字コード変換方式に係り、とりわけ各プラットフォーム上で動作するアプリケーションやミドルウェア等の処理プログラム間でやりとりされる文字データに対してコード変換を行う文字コード変換方式および文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
一般に、インターネットを利用したＷｅｂシステムや、従来型のクライアント／サーバシステム等のオープンシステムでは、オペレーティングシステム等の相違に起因して、異なるコード体系を有する複数のプラットフォームが混在している。このようなマルチプラットフォーム環境において、アプリケーション間連携や、アプリケーション−ミドルウェア間連携といった機能間連携を行う場合には、プラットフォームに依存した複数の異なるコード体系間で同一文字を一意の文字として扱うため、機能間連携でやりとりされる文字データに対してコード変換を行う必要がある。
【０００３】
ここで、アプリケーションがミドルウェアを介してアプリケーション間連携を行う場合や、アプリケーションがデータベース管理システム（ＤＢＭＳ）のようなミドルウェア自体と直接文字データをやりとりしてアプリケーション−ミドルウェア間連携を行う場合には、ミドルウェア内のコード変換機構を介してコード変換を行いつつ文字データの受け渡しを行うのが一般的である。
【０００４】
ところで、このようなオープンシステムを前提としたミドルウェアでは、コード変換機構が特定のプラットフォームに依存した特殊文字（ベンダー定義文字）や外字（ユーザ定義文字）等の文字種に対応していない場合が多く、またコード変換機構内の構造は一般にブラックボックス化されている。
【０００５】
このため、従来においては例えば、送信元または受信先のアプリケーションにて特殊文字や外字等の受け渡しを個別に定義し、アプリケーションごとに設けられたコード変換ライブラリ等により特殊文字や外字等を所定の文字コードに変換した上で、ミドルウェア内のコード変換機構を介して文字データをやりとりするようにしている。
【０００６】
【発明が解決しようとする課題】
しかしながら、上述した従来の方法では、特殊文字や外字等の変換をコード変換ライブラリ等によりアプリケーションごとに個別に行っているので、個々のアプリケーションごとにコード変換ライブラリおよびマッピング情報等の管理が必要となり、またコード変換ライブラリでサポートされるコード体系以外のコード体系間で文字データをやりとりする場合や、マッピング情報に相違が生じた場合には文字データの欠落を招いてしまうという問題がある。
【０００７】
本発明はこのような点を考慮してなされたものであり、利用者側でのコード変換ライブラリおよびマッピング情報等の管理の負担を解消し、特殊文字や外字等の文字種を含む文字データに対する複数の異なるコード体系間でのコード変換を容易かつ確実に行うことができる、マルチプラットフォーム環境における文字コード変換方式および文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、その第１の解決手段として、それぞれが異なるコード体系を有する複数のプラットフォームからなるマルチプラットフォーム環境上で実現され、前記各プラットフォーム上で動作する複数の処理プログラム間でやりとりされる文字データに対して内部コード変換機構を介してコード変換を行う文字コード変換方式において、複数の異なるコード体系間での文字コードの対応関係をマッピング情報として保持するマッピング情報保持手段と、前記各処理プログラムと前記内部コード変換機構との間でやりとりされる文字データに対して前記マッピング情報に基づいてコード変換を行う外部コード変換手段と、前記外部コード変換手段によりコード変換が行われた文字データを、前記内部コード変換機構でのコード変換を前提とした所定のデータ形式に加工するデータ加工手段とを備えたことを特徴とする、マルチプラットフォーム環境における文字コード変換方式を提供する。
【０００９】
なお、上述した第１の解決手段において、前記データ加工手段は、前記外部コード変換手段によりコード変換が行われた文字データを該文字データを引数とした文字関数の形式に加工することが好ましい。また、前記内部コード変換機構は、複数の異なるコード体系間での通常のコード変換に加えて、２バイトからなる文字コードのうち下位の１バイトのみを取り出すコード変換を行うことができるよう構成されており、前記データ加工手段は、前記外部コード変換手段によりコード変換が行われた文字データを１バイト単位で抽出するとともに、この抽出された１バイト単位の文字データを、該文字データを下位の１バイトとした２バイト単位の文字データの形式に加工することが好ましい。さらに、前記マッピング情報保持手段、前記外部コード変換手段および前記データ加工手段は前記処理プログラムが動作する利用者計算機上で実現され、前記利用者計算機には通信媒体を介して管理サーバが接続され、前記管理サーバは、マッピング情報を一元的に管理するマッピング情報管理手段と、前記マッピング情報管理手段により管理されるマッピング情報を前記利用者計算機に対して配布するマッピング情報配布手段とを有し、前記利用者計算機は、前記管理サーバの前記マッピング情報配布手段により配布されたマッピング情報に基づいて、前記マッピング情報保持手段で保持されているマッピング情報を更新するマッピング情報更新手段を有することが好ましい。さらにまた、前記内部コード変換機構でのコード変換の設定状況に応じて前記外部コード変換手段および前記データ加工手段を制御するコード変換判断手段をさらに備え、前記コード変換判断手段は、前記内部コード変換機構でのコード変換が無効化されている場合に前記外部コード変換手段によるコード変換のみを行うよう前記外部コード変換手段および前記データ加工手段を制御することが好ましい。
【００１０】
本発明は、その第２の解決手段として、それぞれが異なるコード体系を有する複数のプラットフォームからなるマルチプラットフォーム環境上で実現され、前記各プラットフォーム上で動作する複数の処理プログラム間で内部コード変換機構を介してやりとりされる文字データに対してコード変換を行う文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記各プラットフォームを実現するコンピュータに対して、前記各処理プログラムと前記内部コード変換機構との間でやりとりされる文字データに対して複数の異なるコード体系間での文字コードの対応関係を表すマッピング情報に基づいてコード変換を行わせる手順と、コード変換が行われた文字データを、前記内部コード変換機構でのコード変換を前提とした所定のデータ形式に加工させる手順とを実行させることを特徴とする、文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【００１１】
本発明の第１および第２の解決手段によれば、各プラットフォーム上で動作する各処理プログラムと内部コード変換機構との間でやりとりされる文字データに対してマッピング情報に基づいてコード変換を行うとともに、このコード変換が行われた文字データを、内部コード変換機構でのコード変換を前提とした所定のデータ形式に加工するので、内部コード変換機構が稼働している状態でも文字データの透過的な受け渡しが可能となり、プラットフォームに依存した複数の異なるコード体系間でのコード変換を容易かつ確実に行うことができ、同一文字を一意の文字として扱うことができる。このため、文字データ内に特殊文字（ベンダー定義文字）や外字（ユーザ定義文字）等の文字種が含まれている場合でも、これらの文字種の欠落を招くことなく、複数の異なるコード体系間でのコード変換を容易かつ確実に行うことができる。また、データ加工手段および外部コード変換手段を処理プログラムから分離して設けているので、これらの手段で用いられているロジックの再利用性が高まり、利用者側でのコード変換ライブラリおよびマッピング情報等の管理の負担を解消することができる。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１および図２は本発明による文字コード変換方式の一実施の形態を示す図である。
【００１３】
図１に示すように、本実施の形態に係る文字コード変換方式は、プラットフォーム２１，２２を含むマルチプラットフォーム環境上で実現される。ここで、プラットフォーム２１，２２はそれぞれ異なるコード体系を有している。図１において、符号２３はプラットフォーム２１上で動作する処理プログラム（アプリケーション）であり、文字データを他の処理プログラムに対して送信するものである。符号２４はプラットフォーム２２上で動作する処理プログラム（アプリケーションまたはミドルウェア本体）であり、処理プログラム２３から送信されてきた文字データを受信するものである。符号２５は処理プログラム２３，２４間で文字データをやりとりする際に用いられるミドルウェアであり、処理プログラム間のデータ連携機能や通信機能等を含んでいる。なお、処理プログラム２４がデータベース管理システム（ＤＢＭＳ）等のミドルウェア本体である場合には、符号２５はそのミドルウェア本体に対する接続機能部分に相当する。なお、ミドルウェア２５は内部コード変換機構２６を有し、各処理プログラム２３，２４間でやりとりされる文字データに対してコード変換を行うことができるようになっている。具体的には、ミドルウェア２５内の内部コード変換機構２６は、各プラットフォーム２１，２２のコード体系間での文字コードの対応関係を保持しており、処理プログラム２３内の文字データを基にして処理プログラム２４用の変換済み文字データ３３を作成するようになっている。
【００１４】
図１に示すように、処理プログラム２３にはコード変換コンポーネント１０が接続されており、処理プログラム２３から引き渡された文字データ（変換元文字データ３１）に対してデータ変換および所定のデータ形式への加工等の処理が行われるようになっている。なお、コード変換コンポーネント１０により処理が行われた処理済みのデータ（処理済み文字データ３２）は、処理プログラム２３を介してミドルウェア２５へ引き渡され、ミドルウェア２５内の内部コード変換機構２６により処理済み文字データ３２に対してコード変換が行われる。
【００１５】
ここで、コード変換コンポーネント１０は、コード変換判断部１２、データ加工部１３および外部コード変換部１４を有している。また、外部コード変換部１４にはマッピング情報保持部１１が接続されている。
【００１６】
このうち、マッピング情報保持部１１は、複数の異なるコード体系間での文字コードの対応関係（複数の異なるコード体系間での同一文字に対するコード値の対応関係）をマッピング情報として保持するものであり、外部コード変換部１４により参照される。
【００１７】
コード変換判断部１２は、ミドルウェア２５内の内部コード変換機構２６でのコード変換の設定状況に応じて外部コード変換部１４およびデータ加工部１３を制御するものである。具体的には、コード変換判断部１２は、処理プログラム２３のＡＰＩ（application programming interface）呼び出し等により処理プログラム２３から文字データ、および変換処理の内容を表すパラメータを受け取り、処理プログラム２３側の要求に応じて外部コード変換部１４およびデータ加工部１３を制御する。すなわち、内部コード変換機構２６でコード変換が行われるよう設定されている場合には、文字データおよびパラメータをデータ加工部１３へ引き渡し、データ加工部１３の制御の下で、外部コード変換部１４によるコード変換およびデータ加工部１３による所定のデータ形式への加工を行う。一方、内部コード変換機構２６でのコード変換が無効化されている場合には、文字データおよびパラメータを外部コード変換部１４へ引き渡し、外部コード変換部１４によるコード変換のみを行う。なお、処理プログラム２３から引き渡されるパラメータには、送信元および受信先のコード体系を示す情報の他、データ加工部１３での加工の有無および種類を示す情報等が含まれる。
【００１８】
データ加工部１３は、コード変換判断部１２により呼び出され、処理プログラム２３から引き渡された文字データおよびパラメータに基づいて、外部コード変換部１４に対してコード変換を行わせるとともに、外部コード変換部１４によりコード変換が行われた文字データを、内部コード変換機構２６でのコード変換を前提とした所定のデータ形式に加工するものである。
【００１９】
外部コード変換部１４は、コード変換判断部１２により直接呼び出される他、データ加工部１３により呼び出される。外部コード変換部１４は、処理プログラム２３から引き渡された文字データおよびパラメータに基づいて、各処理プログラム２３，２４と内部コード変換機構２６との間でやりとりされる文字データに対してコード変換を行うものである。なお、外部コード変換部１４でのコード変換は、マッピング情報保持部１１に保持されたマッピング情報に基づいて行う他、所定のアルゴリズムに従って行うこともできる。また、マッピング情報によるコード変換とアルゴリズムによるコード変換とを組み合わせて行うことも可能である。なお、マッピング情報によるコード変換とアルゴリズムによるコード変換とを組み合わせる場合には、両方のコード変換が重複する範囲の文字コードに関してはどちらの方式で変換させるかについて優先度を持たせて処理するようにするとよい。
【００２０】
次に、図２により、図１に示す文字コード変換方式が適用されるネットワークシステムの一例について説明する。
【００２１】
図２に示すように、図１に示すコード変換コンポーネント１０（コード変換判断部１２、データ加工部１３および外部コード変換部１４）およびマッピング情報保持部１１は、処理プログラム２３が動作する利用者計算機２上で実現されている。また、利用者計算機２にはＬＡＮ（local area network）等の通信媒体３を介して管理サーバ１が接続されている。
【００２２】
ここで、管理サーバ１は、通信媒体３を介して接続された複数の利用者計算機２で保持されるマッピング情報を一元的に管理するためのものであり、マッピング情報を一元的に管理するマッピング情報管理コンポーネント１５と、マッピング情報管理コンポーネント１５により管理されるマッピング情報を利用者計算機２に対して配布するマッピング情報配布コンポーネント１６とを有している。なお、マッピング情報管理コンポーネント１５には一元管理用マッピング情報保持部１８が接続されており、一元管理用マッピング情報保持部１８において、複数の異なるコード体系間での文字コードの対応関係（複数のコード体系間での同一文字に対するコード値の対応関係）がマッピング情報として保持されている。ここで、マッピング情報管理コンポーネント１５は、一元管理用マッピング情報保持部１８で保持されるマッピング情報を定義および格納する他、一元管理用マッピング情報保持部１８で保持されたマッピング情報が更新されたときに利用者計算機２へのマッピング情報の配布および更新を要求することができるようになっている。
【００２３】
一方、利用者計算機２は、管理サーバ１のマッピング情報配布コンポーネント１６により配布されたマッピング情報に基づいて、マッピング情報更新コンポーネント１７により、マッピング情報保持部１１で保持されているマッピング情報を更新することができるようになっている。
【００２４】
次に、このような構成からなる本実施の形態の作用について説明する。なお、図１では、処理プログラム２３、ミドルウェア２５および処理プログラム２４の順でのデータ変換の様子のみが示されているが、処理プログラム２４、ミドルウェア２５および処理プログラム２３の順でデータ変換が行われる場合にも同様にして処理を行うことができる。
【００２５】
図１において、処理プログラム２３は、ミドルウェア２５を介して処理プログラム２４に対して文字データを送信する。
【００２６】
このとき、処理プログラム２３は、変換元文字データ３１をコード変換コンポーネント１０に対して引き渡す。処理プログラム２３は、文字データとともに、変換処理の内容を表すパラメータ（送信元および受信先のコード体系を示す情報、およびデータ加工部１３での加工の要否（および加工が必要である場合には加工の種類を示す情報））を引き渡す。
【００２７】
コード変換コンポーネント１０は、変換元文字データ３１に対してデータ変換および所定のデータ形式への加工等の処理を行う。
【００２８】
ここで、コード変換コンポーネント１０で行われる処理は、処理プログラム２３が連携するミドルウェアの種類により異なっており、その種類に応じて変換元文字データ３１に対してコード変換および所定のデータ形式への加工を行うか、コード変換のみを行うかを決定する。すなわち、ミドルウェア２５内の内部コード変換機構２６でコード変換が行われるよう設定されている場合には、外部コード変換部１４でのコード変換とともに、内部コード変換機構２６でのコード変換を前提としたデータ加工部１３での所定のデータ形式への加工が必要となる。これに対し、ミドルウェア２５内に設けられた内部コード変換機構２６が無効化されている場合、またはミドルウェア２５内に内部コード変換機構２６が設けられていない場合には、外部コード変換部１４でのコード変換のみが必要となる。
【００２９】
まず、コード変換判断部１２において、処理プログラム２３から引き渡されたパラメータに基づいてデータ加工部１３での加工の要否を判断する。
【００３０】
ここで、内部コード変換機構２６でコード変換が行われる場合には、データ加工部１３での加工および外部コード変換部１４でのコード変換が必要となる。この場合には、文字データおよびパラメータをデータ加工部１３へ引き渡し、データ加工部１３の制御の下で、外部コード変換部１４に対してマッピング情報保持部１１で保持されたマッピング情報に基づいて文字データのコード変換を行わせた後、そのコード変換が行われた文字データを、データ加工部１３により、内部コード変換機構２６でのコード変換を前提とした所定のデータ形式に加工する。なお、その変換結果は処理済み文字データ３２として処理プログラム２３へ引き渡される。
【００３１】
これに対し、内部コード変換機構２６でのコード変換が無効化されている場合には、文字データおよびパラメータを外部コード変換部１４へ引き渡し、外部コード変換部１４によるコード変換のみを行う。なお、その変換結果は処理済み文字データ３２として処理プログラム２３へ戻される。
【００３２】
その後、処理プログラム２３は、コード変換コンポーネント１０から引き渡された処理済み文字データ３２をミドルウェア２５を介して処理プログラム２４へ引き渡す。このとき、ミドルウェア２５内でコード変換が行われるよう設定されている場合には、処理プログラム２３から引き渡された処理済み文字データ３２に対して内部コード変換機構２６によりコード変換を行った後、変換済み文字データ３３として処理プログラム２４へ引き渡す。これに対し、ミドルウェア２５内に設けられた内部コード変換機構２６が無効化されている場合、またはミドルウェア２５内に内部コード変換機構２６が設けられていない場合には、処理プログラム２３から引き渡された処理済み文字データ３２をそのまま処理プログラム２４へ引き渡す。
【００３３】
図３は図１に示す文字コード変換方式をデータベース管理システム（ＤＢＭＳ）に適用した場合の一実施例を説明するための図である。図３において、文字データの送信元の処理プログラムとしては、Ｗｉｎｄｏｗｓプラットフォーム２１上で動作する、Ｊａｖａ言語で開発されたＪａｖａアプリケーション２３を用いる。また、文字データの受信先の処理プログラムとしては、ＵＮＩＸプラットフォーム２２上で動作するデータベース管理システム（ＤＢＭＳ）２４を用いる。
【００３４】
ミドルウェアとしては、ＤＢＭＳ２４にアクセスするためのＪＤＢＣドライバ２５があり、ＪＤＢＣドライバ２５を介してＪａｖａアプリケーション２３からＤＢＭＳ２４に対して文字データの挿入処理等が行われる。なお、Ｊａｖａアプリケーション２３からＤＢＭＳ２４に対して文字データの挿入処理を行う場合には、Ｊａｖａアプリケーション２３により発行されるＳＱＬ文（文字データ）に対して、ＪＤＢＣドライバ２５内に組み込まれている内部コード変換機構２６により、Ｊａｖａアプリケーション２３側のコード体系（Ｕｎｉｃｏｄｅ）からＤＢＭＳ２４側のコード体系（ＥＵＣ）へのコード変換が行われる。
【００３５】
（処理例１）
ここで、図４乃至図７により、図３に示す実施例における文字データの第１の処理例について説明する。なお、この第１の処理例は、データ加工部１３において、外部コード変換部１４によりコード変換が行われた文字データを、該文字データを引数とした文字関数の形式に加工するものである。
【００３６】
ここで、この第１の処理例では、Ｊａｖａアプリケーション２３からＤＢＭＳ２４に対して挿入される文字データ内に、特定のプラットフォームに依存した特殊文字や外字等の文字種が含まれている場合を想定する。コード変換コンポーネント１０は、これらの文字種についてのＵｎｉｃｏｄｅとＥＵＣとの間での対応関係をマッピング情報保持部１１でマッピング情報として保持しており、またこれらの文字種について外部コード変換部１４によりＵｎｉｃｏｄｅからＥＵＣへのコード変換を行うことができるものとする。なお、ＪＤＢＣドライバ２５内の内部コード変換機構２６はこれらの文字種に対応していない。
【００３７】
以下、文字列「[東]芝太郎」（本明細書中では、矩形枠に囲まれた「東」の文字（図４参照）を「[東]」として表記する。）をＪａｖａアプリケーション２３からＤＢＭＳ２４に対して挿入する場合を例に挙げて、コード変換コンポーネント１０での文字データの処理の流れについて説明する。なお、図４は文字列「[東]芝太郎」のマッピング情報の一例を示す図である。図４において、文字列「[東]芝太郎」のうち「[東]」の文字は外字（ユーザ定義文字）であり、Ｕｎｉｃｏｄｅ上ではその私用領域内に位置するコード値“0xE000”で表され、コード変換の対象となるＥＵＣ上ではＥＵＣコードセット１の自由領域内に位置するコード値“0xF5A1”で表される。
【００３８】
図５に示すように、Ｊａｖａアプリケーション２３は、まず、Ｊａｖａアプリケーション２３から挿入される文字データ「[東]芝太郎」を準備する（ステップ１０１）。
【００３９】
次に、Ｊａｖａアプリケーション２３は、文字データ「[東]芝太郎」をコード変換コンポーネント１０に対して引き渡し、データ変換および所定のデータ形式への加工を要求する（ステップ１０２）。これにより、Ｊａｖａアプリケーション２３は、変換結果「CHR(62881)||"芝太郎"」を取得する（ステップ１０３）。なお、「CHR(XXXXX)」は、ＤＢＭＳ２４内で認識可能な文字関数であり、引数である“XXXXX”をコード値とする一文字のデータを表している。なお、“XXXXX”は１０進表現であるものとし、例えば「CHR(41377)」はコード値“41377（0xA1A1）”をとる文字を表し、ＥＵＣコードセット１の１区１点上の文字を表している。
【００４０】
その後、Ｊａｖａアプリケーション２３は、変換結果を元にＳＱＬ文「INSERT INTO USERS VALUES(1,CHR(62881)||"芝太郎")」を組み立て、ＳＱＬ文を実行する（ステップ１０４）。
【００４１】
これにより、ＪＤＢＣドライバ２５によりＳＱＬ文がＤＢＭＳ２４に対して発行される（ステップ１０５）。このとき、ＪＤＢＣドライバ２５内の内部コード変換機構２６によりＵｎｉｃｏｄｅからＥＵＣへのコード変換が行われるが、問題の外字「[東]」は文字関数として加工済みの文字データであり、文字データ（CHR(62881)）に含まれる各文字は全て１バイトコード表現であるので、ＵｎｉｃｏｄｅからＥＵＣへのコード変換において、この外字はＤＢＭＳ２４側でもＥＵＣの外字（“0xF5A1”）として正常に認識できる文字データとして受け渡すことができる。
【００４２】
ＤＢＭＳ２４においては、ＳＱＬ文「INSERT INTO USERS VALUES(1,CHR(62881)||"芝太郎")」を受け取った後（ステップ１０６）、ＥＵＣの文字データ「[東]芝太郎」をデータベースに挿入する（ステップ１０７）。
【００４３】
なお、逆に、ＤＢＭＳ２４側での検索結果をＪａｖａアプリケーション２３が取得する場合には、ＤＢＭＳ２４側の関数を用いて文字データを加工することができる。具体的には例えば、ＤＢＭＳ２４側の関数として、コード値の１０進文字列を返却する関数（HEX(XXXXX)）がある場合には、検索結果を「SELECT HEX(USERS) FROM USERS」のようなＳＱＬ文で取得し、コード変換コンポーネント１０の外部コード変換部１４により「HEX(XXXXX)」の１０進文字列“XXXXX”が示すコード値に対してＥＵＣからＵｎｉｃｏｄｅへのコード変換を行うことにより、外字や特殊文字等の文字種を含む文字データを取得することができる。
【００４４】
図６および図７は図５に示す具体例におけるデータ加工方法の一例を説明するためのフローチャートである。図６に示すように、コード変換コンポーネント１０のデータ加工部１３は、Ｊａｖａアプリケーション２３からコード変換判断部１２を介して文字データ「[東]芝太郎」を取得すると（ステップ２０１）、この文字データ「[東]芝太郎」の中から１文字ずつ抽出し（ステップ２０２）、この抽出された文字が外字または特殊文字であるかを判別する（ステップ２０３）。
【００４５】
ステップ２０３において、抽出された文字が外字または特殊文字である場合には、外部コード変換部１４に対してコード変換を要求し、その変換結果を取得する（ステップ２０４）。
【００４６】
その後、変換後のＥＵＣのコード値を１０進文字列“XXXXX”に変換した後（ステップ２０５）、その１０進文字列“XXXXX”を引数とした文字列「CHR(XXXXX)」を組み立てる（ステップ２０６）。なおここでは、文字データ「[東]芝太郎」中の文字「[東]」に対応するＥＵＣのコード値“0xF5A1”が１０進文字列「62881」に変換され、文字列「CHR(62881)」として組み立てられた後、文字配列［０］に格納される（ステップ２０７）。
【００４７】
一方、ステップ２０３において、抽出された文字が外字または特殊文字でない場合には、文字配列［１］に順次格納していき（ステップ２０７）、外字または特殊文字が再び検出されるまで文字配列［１］に格納を繰り返す。なおここでは、文字列の最初にのみ外字が出現するが、仮に外字または特殊文字が再度検出された場合には文字配列の要素をカウントアップし、続く文字配列［２］に格納することとなる。
【００４８】
文字データ「[東]芝太郎」中の全ての文字についてステップ２０１乃至２０７の処理が行われると（ステップ２０８）、最終的に文字配列［０］には「CHR(62881)」が格納され、文字配列［１］には「芝太郎」が格納されることとなる。
【００４９】
最終的に、外字または特殊文字を表す文字関数文字列の要素と、それ以外の文字列の要素とに分けられた配列要素内の文字列を結合文字にて結合し（ステップ２０９）、その結合後の文字列「CHR（62881）||"芝太郎"」を返却する（ステップ２１０）。なお、文字配列［０］と文字配列［１］とを結合する様子を図７に示す。
【００５０】
（処理例２）
次に、図８乃至図１０により、図３に示す実施例における文字データの第２の処理例について説明する。なお、この第２の処理例は、データ加工部１３において、外部コード変換部１４によりコード変換が行われた文字データを１バイト単位で抽出するとともに、この抽出された１バイト単位の文字データを、該文字データを下位の１バイトとした２バイト単位の文字データの形式に加工するものである。
【００５１】
ここで、この第２の処理例でも、Ｊａｖａアプリケーション２３からＤＢＭＳ２４に対して挿入される文字データ内に、特定のプラットフォームに依存した特殊文字や外字等の文字種が含まれている場合を想定する。コード変換コンポーネント１０は、これらの文字種についてのＵｎｉｃｏｄｅとＥＵＣとの間での対応関係をマッピング情報保持部１１でマッピング情報として保持しており、またこれらの文字種について外部コード変換部１４によりＵｎｉｃｏｄｅからＥＵＣへのコード変換を行うことができるものとする。なお、ＪＤＢＣドライバ２５内の内部コード変換機構２６はこれらの文字種に対応していないが、内部コード変換機構２６においては、ＵｎｉｃｏｄｅとＥＵＣとの間でのコード変換に加えて、他のコード変換（１バイトエンコーディング方式であるＩＳＯ８８５９＿１）を選択することができるようになっている。ここで、１バイトエンコーディング方式であるＩＳＯ８８５９＿１は、２バイトからなる文字コードのうち下位の１バイトのみを取り出すものであり、Ｕｎｉｃｏｄｅの文字データに含まれる個々の文字コードのうち下位バイトのコード値“0x00”〜“0XFF”部分をそのまま取り出すことができる。
【００５２】
図８に示すように、Ｊａｖａアプリケーション２３は、まず、Ｊａｖａアプリケーション２３から挿入される文字データ「[東]芝太郎」を準備する（ステップ３０１）。
【００５３】
次に、Ｊａｖａアプリケーション２３は、文字データ「[東]芝太郎」を元にＳＱＬ文「INSERT INTO USERS VALUES(1,"[東]芝太郎")」を組み立て（ステップ３０２）、その後、コード変換コンポーネント１０に対して、ＳＱＬ文全体のデータ変換および所定のデータ形式への加工を要求する（ステップ３０３）。これにより、Ｊａｖａアプリケーション２３は、その変換結果を取得する（ステップ３０４）。なお、このとき取得される変換結果は、ＤＢＭＳ２４側のコード体系であるＥＵＣに変換したコード値を１バイト単位で抽出し、その先頭部分に“Ox00”を付加した２バイト単位のＵｎｉｃｏｄｅの文字データである。
【００５４】
その後、Ｊａｖａアプリケーション２３は、ＪＤＢＣドライバ２５内の内部コード変換機構２６に対して１バイトエンコーディング方式であるＩＳＯ８８５９＿１を指定し、ＳＱＬ文を実行する（ステップ３０５）。
【００５５】
これにより、ＪＤＢＣドライバ２５によりＳＱＬ文がＤＢＭＳ２４に対して発行される（ステップ３０６）。このとき、ＪＤＢＣドライバ２５内の内部コード変換機構２６により、Ｕｎｉｃｏｄｅの文字データに含まれる個々の文字コードのうち先頭１バイト分のコード値“0x00”が削除され、下位バイトのコード値“0x00”〜“0XFF”部分（ＥＵＣのコード値）がそのまま取り出されるので、ＪＤＢＣドライバ２５内の内部コード変換機構２６が外字や特殊文字等の文字種に対応していない場合でも、問題の外字「[東]」はＤＢＭＳ２４側でもＥＵＣの外字（０ＸＦ５Ａ１）として正常に認識できる文字データとして受け渡すことができる。
【００５６】
ＤＢＭＳ２４においては、ＳＱＬ文「INSERT INTO USERS VALUES(1,"[東]芝太郎")」を受け取った後（ステップ３０７）、ＥＵＣの文字データ「[東]芝太郎」をデータベースに挿入する（ステップ３０８）。
【００５７】
なお、ＤＢＭＳ２４側での検索結果をＪａｖａアプリケーション２３が取得する場合には、ＪＤＢＣドライバ２５内の内部コード変換機構２６により、１バイトエンコーディング方式であるＩＳＯ８８５９＿１の下で、ＥＵＣのコード値が１バイト単位で抽出されるとともに、その先頭部分に“Ox00”が付加されたＵｎｉｃｏｄｅの文字データが返される。このため、コード変換コンポーネント１０のデータ加工部１３によりＵｎｉｃｏｄｅの文字データに含まれる２バイト単位の文字コードのうち先頭部分の“Ox00”を削除して１バイト単位のバイト配列を作成し、さらに、外部コード変換部１４によりそのバイト配列に対してＵｎｉｃｏｄｅへのコード変換を行うことにより、外字や特殊文字等の文字種を含む文字データを取得することができる。
【００５８】
図９および図１０は図８に示す具体例におけるデータ加工方法の一例を説明するためのフローチャートである。図９に示すように、コード変換コンポーネント１０のデータ加工部１３は、Ｊａｖａアプリケーション２３からコード変換判断部１２を介して文字データ「[東]芝太郎」を取得すると（ステップ４０１）、この文字データ「[東]芝太郎」のコード変換を外部コード変換部１４に対して要求し（ステップ４０２）、その変換結果をＥＵＣのコード値として取得する（ステップ４０３）。なおこのとき、文字データ「[東]芝太郎」に対応する変換後のＥＵＣのコード値は、図１０（ａ）に示すようなバイト配列の形で格納されている。
【００５９】
その後、変換後のＥＵＣのコード値を１バイト単位で抽出し（ステップ４０４）、その先頭部分に“Ox00”を付加して２バイト単位のＵｎｉｃｏｄｅの文字データを作成する（ステップ４０５）。
【００６０】
なお、このようにして作成されたＵｎｉｃｏｄｅの文字データは文字配列に格納される（ステップ４０６）。
【００６１】
最終的に、文字データ「[東]芝太郎」中の全ての文字についてステップ４０１乃至４０５の処理が行われると（ステップ４０７）、文字配列には図１０（ｂ）に示すような形で文字データが格納され、その処理済みの文字配列が返却される（ステップ４０８）。なお、図１０（ｂ）に示すように、例えばＥＵＣのコード値“0xF5A1”は、Ｕｎｉｃｏｄｅの文字コード“0x00F5”および“0x00A1”として文字配列［０］［１］にそれぞれ格納され、その処理済みの文字配列が返却される。
【００６２】
なお、この第２の処理例では、ＪＤＢＣドライバ２５内の内部コード変換機構２６により、１バイトエンコーディング方式であるＩＳＯ８８５９＿１が指定できることを前提とするが、ＳＱＬ文内に文字関数を組み込む上述した第１の処理例に比べて、外字や特殊文字等の有無を判断する必要がなく、また文字関数のようなＤＢＭＳ２４側の仕様に依存したコード変換を行う必要がないという利点がある。
【００６３】
このように本実施の形態によれば、各プラットフォーム２１，２２上で動作する各処理プログラム２３，２４とミドルウェア２５内の内部コード変換機構２６との間でやりとりされる文字データに対してマッピング情報に基づいてコード変換を行うとともに、このコード変換が行われた文字データを、内部コード変換機構２６でのコード変換を前提とした所定のデータ形式に加工するので、ミドルウェア２５内の内部コード変換機構２６が稼働している状態でも文字データの透過的な受け渡しが可能となり、プラットフォーム２１，２２に依存した複数の異なるコード体系間でのコード変換を容易かつ確実に行うことができ、同一文字を一意の文字として扱うことができる。このため、文字データ内に特殊文字（ベンダー定義文字）や外字（ユーザ定義文字）等の文字種が含まれている場合でも、これらの文字種の欠落を招くことなく、複数の異なるコード体系間でのコード変換を容易かつ確実に行うことができる。また、コード変換コンポーネント１０（データ加工部１３および外部コード変換部１４）を処理プログラム２３から分離して設けているので、コード変換コンポーネント１０で用いられているロジックの再利用性が高まり、利用者側でのコード変換ライブラリおよびマッピング情報等の管理の負担を解消することができる。
【００６４】
また本実施の形態によれば、管理サーバ１のマッピング情報管理コンポーネント１５によりマッピング情報を一元的に管理するとともに、そのマッピング情報をマッピング情報配布コンポーネント１６により利用者計算機２に対して配布し、最終的に、利用者計算機２側のマッピング情報更新コンポーネント１７によりマッピング情報保持部１１で保持されているマッピング情報を更新するようにしているので、通信媒体３を介して接続された複数の利用者計算機２間でマッピング情報を統一することができ、複数のコード体系間での同一文字に対するコード値の対応関係を全ての利用者計算機２上で一意とすることができる。
【００６５】
なお、上述した実施の形態におけるコード変換コンポーネント１０、マッピング情報管理コンポーネント１５、マッピング情報配布コンポーネント１６およびマッピング情報更新コンポーネント１７はいずれも、利用者計算機２上で動作するプログラムコンポーネントとして実現することができる。このようなプログラムコンポーネントを含む文字コード変換プログラムは、各種の記録媒体に記録され、利用者計算機２により読み出されて上述したような処理が行われる。
【００６６】
なお、本実施の形態で用いられる記録媒体としては、磁気ディスク、フロッピーディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−ＲおよびＤＶＤ等）、光磁気ディスク（ＭＯ等）および半導体メモリ等を含み、プログラムを記録することができ、かつコンピュータ読み取り可能なものであれば、その記録形式はどのようなものでもよい。また、記録媒体としては、ネットワーク上で伝送される際の搬送波等の情報伝達媒体を含む。さらに、記録媒体は、コンピュータと独立したものに限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。さらにまた、記録媒体は１つであるとは限らず、複数の記録媒体から本実施の形態で行われる処理が実現される場合も本発明における記録媒体の概念に含まれる。
【００６７】
また、本実施の形態においては、記録媒体からコンピュータにインストールされた文字コード変換プログラムの指示に基づき、コンピュータ上で動作しているオペレーティングシステム（ＯＳ）、データベース管理ソフトおよびネットワークソフト等の他のプログラム（ミドルウェア等）により、本実施の形態で行われる処理の一部を実現するようにしてもよい。
【００６８】
【発明の効果】
以上説明したように本発明によれば、利用者側でのコード変換ライブラリおよびマッピング情報等の管理の負担を解消し、特殊文字や外字等の文字種を含む文字データに対する複数の異なるコード体系間でのコード変換を容易かつ確実に行うことができる。
【図面の簡単な説明】
【図１】本発明による文字コード変換方式の一実施の形態を説明するためのブロック図。
【図２】図１に示す文字コード変換方式が適用されるネットワークシステムの全体構成を示すブロック図。
【図３】図１に示す文字コード変換方式をデータベース管理システム（ＤＢＭＳ）に適用した場合の一実施例を示す図。
【図４】図３に示す実施例におけるＵｎｉｃｏｄｅ−ＥＵＣ間のマッピング情報の一例を示す図。
【図５】図３に示す実施例における文字データの処理の流れの一例を説明するための図。
【図６】図５に示す具体例におけるデータ加工方法の一例を説明するためのフローチャート。
【図７】図６に示すステップ２０９における処理例を示す図。
【図８】図３に示す実施例における文字データの処理の流れの別の例を説明するための図。
【図９】図８に示す具体例におけるデータ加工方法の一例を説明するためのフローチャート。
【図１０】図９に示すステップ４０３および４０８における処理例を示す図。
【符号の説明】
１  管理サーバ
２  利用者計算機
３  通信媒体
１０  コード変換コンポーネント
１１  マッピング情報保持部
１２  コード変換判断部
１３  データ加工部
１４  外部コード変換部
１５  マッピング情報管理コンポーネント
１６  マッピング情報配布コンポーネント
１７  マッピング情報更新コンポーネント
１８  一元管理用マッピング情報保持部
２１，２２  プラットフォーム
２３  文字データ送信元処理プログラム
２４  文字データ受信先処理プログラム
２５  ミドルウェア
２６  内部コード変換機構
３１  変換元文字データ
３２  処理済み文字データ
３３  変換済み文字データ
【図１】
0003917343.tif 000002
【図２】
0003917343.tif 000003
【図３】
0003917343.tif 000004
【図４】
0003917343.tif 000005
【図５】
0003917343.tif 000006
【図６】
0003917343.tif 000007
【図７】
0003917343.tif 000008
【図８】
0003917343.tif 000009
【図９】
0003917343.tif 000010
【図１０】
0003917343.tif 000011