説明

コード変換システム、コード変換装置、コード変換方法、及びコード変換プログラム

【課題】本発明は、変換テーブルの格納領域を最小限にし、処理時間の短縮化を可能ならしめるコード変換システムを提供する。
【解決手段】コード変換装置20Aは、1つの文字情報に対する第1情報量の第1コードを基本多言語面変換テーブル31a,追加面変換テーブル32aを参照し、第1コードと異なるコード体系で第1情報量又は第2情報量の場合がある第2コードに変換する。前記一方の変換テーブル31aは、第1情報量の第1,第2の各コードが対応し第1情報量の値を要素とする構造を、他方の変換テーブル32aは前記要素の一部と第2情報量より少ない第3情報量の第1中間コードとが対応し第3情報量の値を要素とする構造を含む。コード変換装置20Aは、一方の変換テーブル31aを参照した結果が要素の一部の範囲である場合に他方の変換テーブル32aを参照し第3情報量の第1中間コードを出力し第2情報量の第2コードを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コード変換システム、コード変換装置、コード変換方法、及びコード変換プログラムに関し、特に日本語コードをユニコード(Unicode)に変換するためのコード変換システム、コード変換装置、コード変換方法、及びコード変換プログラムに関する。
【背景技術】
【0002】
ユニコードコンソーシアムによって定められた符号化文字集合の国際的な標準規格であるユニコード(Unicode)においては、その符号化方式の一つであるUCS―2(Universal Character Set coded in 2 octets )で定義される文字の集合は、全ての文字を16ビット(2バイト)にて表現し、1つの文字コード体系にて多国語処理を可能としようとするものである。
しかしながら、[0000]〜[FFFF(16進数)]で表される文字コード(16×16×16×16=65, 536文字分)にて、文字体系(言語体系)の異なる全ての文字を表現することは不可能である。そこで、ユニコードにおける新たな別の符号化方式であるUTF―16(UCS Transformaion Format for 16 Planes of Group 00)においては、2文字分のコードを組(ペア)にすることで、つまり32ビット(4バイト)を用いて1つの文字を表すサロゲートペア文字が利用可能となっている。
【0003】
具体的には、ユニコード(Unicode)の基本文字領域BMP(Basic Mutilingual Plane)における[D800]〜[DFFF]の領域をサロゲートペア文字領域として定め、[D800]〜[DBFF]で示される上位2バイトコードと、[DC00]〜[DFFF]で示される下位2バイトコードとの組合せの4バイトにより計(1, 024×1, 024=1, 048, 576)文字をサロゲートペア文字として取り扱うことを可能としている。ここで、サロゲートペア文字は(256×256)の区点によって示される面(plane)毎に65, 536文字ずつ、16面に亘って管理される。
【0004】
更に、近年、日本語に対応したコンピュータでは、文化審議会国語分科会で制定された印刷標準字体に対応した情報交換用符号化漢字集合のJIS規格である「 JIS X 0213:2004」に対応したユニコード(Unicodeバージョン3.2以上)が使われ始めている。これに伴い、各種ベンダの日本語2バイトコードと「JIS X 0213:2004」に対応したユニコードの変換対応が必要になってきている。
【0005】
ここで、「JIS X 0213:2004」では、その前身のJIS規格である「JIS X 0208」や「JIS X 0212」から文字を大幅に追加しており、これに伴いユニコードにおいては基本多言語面に入りきらなかった文字(303文字など)を漢字追加面に収容することとなった。この際、漢字追加面に収容された文字は、UTF−16の符号化形式で4バイトのコード(サロゲートペア)により表される。このため、「JIS X 0213:2004」の文字列をUTF−16符号化形式で表すと基本多言語面にかかる2バイトの文字コードの場合と、漢字追加面にかかる4バイトの文字コードの場合とが混在する形式となる。
【0006】
これまでの汎用のコード変換装置では、「JIS X 0208」に対応した文字のみで済んでいたため、UTF−16符号化形式で表した場合であってもサロゲートペアを使用する必要がなく、全ての文字を2バイトで構成することができた。
このため、「JIS X 0208」などの漢字2バイトコードからユニコードへコード変換する場合、2バイトから2バイトへ1対1のコード変換テーブルを持てばコード変換を行うことができた。
【0007】
しかしながら、コード変換装置が変換先に「JIS X 0213:2004」に対応したユニコードをサポートするには、2バイトから2バイトへ変換する仕組みに加え、2バイトから4バイトへ変換する仕組みも必要となる。即ち、「JIS X 0213:2004」にかかるコードを、UTF−16にかかるユニコードに変換するコード変換装置においては、2バイトデータへの変換と、4バイトデータへの変換との双方を行う必要がある。
【0008】
そこで、このコード変換を実現する仕組みとして汎用技術と同じ考え方で2バイトコードから4バイトコードへ1 対1のコード変換テーブルを作成する場合が想定され得る。
具体的には、2バイトコードと4バイトコードが混在するコードへ変換を行うにためには、図11のコード変換テーブルT1の各要素を4バイトとする手法が一般的である。
【0009】
図11は、2バイトコードから2バイトコードへ変換するための一般的なコード変換テーブルであり、変換元の2バイトコード値に対応した変換先の2バイトコードを配列に格納した例である。図12は、図11のコード変換テーブルT1の各要素を4バイトとした例である。
【0010】
図12に示すコード変換テーブルT2を利用したコード変換では、2バイトコードをキーとして表の要素を参照したとき、上位2バイトの値が0000hであれば、下位2バイトの値を基本多言語面の文字を表すUTF−16の2バイトコードの値とし、上位2バイトが0000h以外の場合、漢字追加面の文字を表すサロゲートペア(UTF−16の4バイトコード)の値とすることで、2バイトと4バイトのコード変換結果を得ることができる。
この場合、1文字あたり4バイトの情報を必要とするため、汎用技術の2倍のサイズを持つコード変換テーブルが必要となる。
【0011】
一方、サロゲートペアに対応したコード変換を行うシステムの関連技術の一例が、特許文献1、特許文献2などに記載されている。
【0012】
特許文献1のコード変換は、変換入力と変換出力がともにユニコードである。特許文献1では、サロゲートペア(4バイトコード)を2バイトのコードに変換してデータベースに格納する。この特許文献1に記載されたコード変換手段では、サロゲートペアを2バイトの私用領域のコードに置き換えデータベースに格納し、データベースからデータを取り出すとき私用領域のコードがあれば、コード逆変換手手段により対応するサロゲートペアへ戻す手法を示している。
【0013】
図13は、特許文献1のコード逆変換手段が参照するコード変換テーブルの一例である。この特許文献1によると、コード逆変換手段において、入力した2バイトコードが私用領域の文字コードであった場合、私用領域の文字コードをキーとして図13のコード変換テーブルT3を検索し、キーに対応するサロゲートペア文字コードを得ている。
【0014】
又、特許文献2では、その段落番号[0012]〜[ 0014] に開示されているように、文字データ入力部は、入力された文字コード列を2バイトずつ切り出して該2バイトのコードがサロゲートペア文字の特定に用いられるコードであるか否かを判定し、サロゲートペア文字を特定する4バイトのコードを求めるサロゲートペア文字検出手段を備えている。
更に、文字データ入力部は、変換テーブルを参照してサロゲートペア文字検出手段にて求められた4バイトのコードに予め対応付けられた2バイトのコードを求めこの2バイトのコードにて4バイトのコードを置換するコード置換手段を備えている。
【0015】
更に、この特許文献2では、コード置換手段は、サロゲートペア文字を特定する4バイトのコードを、予め文字処理システムにおけるフォントファイルの外字領域に準備したサロゲートペア文字を特定する2バイトのコードに変換する。文字データ入力部は、ユニコードの基本文字領域BMPを予め区画して設定したサロゲートペア文字領域[D800]〜[DFFF]に含まれる上位2バイトコードと下位2バイトコードとの組によって特定される複数のサロゲートペア文字の中の出現頻度の高い幾つかのサロゲートペア文字、或いはニーズに応じて規定された複数のサロゲートペア文字を、予めユニコードの基本文字領域BMPにおける外字領域[E000]〜[F8FF]に2バイトのコードにて特定可能な外字(サロゲート文字)として登録している。
【0016】
又、特許文献2では、文字データ入力部においては、フォントファイルの外字領域に登録した複数の外字(サロゲート文字)をそれぞれ特定する2バイトのコードと、当該外字(サロゲート文字)に相当するサロゲートペア文字を特定する4バイトのコードとを相互に対応付けて変換テーブルに登録している。
このため、特許文献2の変換テーブルでは、当該テーブルの要素に4バイトのテータが必要となっている。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】特開2008−242992号公報
【特許文献2】特開2009−42980号公報
【発明の概要】
【発明が解決しようとする課題】
【0018】
しかしながら、上述のような関連技術を利用した図12に示す手法では、図11のコード変換テーブルT1を利用する場合に比較して、コード変換テーブルの格納領域が2倍となる。その理由は、図11のコード変換テーブルT1の要素1つが2バイトであるのに対して図12のコード変換テーブルT2の要素1つは4バイトのためである。
【0019】
ところで、組み込み機器などコード変換を実装する装置によっては、コード変換テーブルに割り当てることのできる領域のサイズに制限があるため、「JIS X 0213:2004」に対応したユニコードへのコード変換で利用するコード変換テーブルのサイズを必要最小限の大きさとする必要がある。
このため、図12に示す手法では、変換テーブルを格納するのに必要なサイズが汎用技術の2倍のサイズとなってしまい、変換テーブルの格納領域が膨大となり、比較的少ないメモリ容量の組み込み機器などコード変換を実装する装置に前記変換テーブルを搭載できない、という不都合があった。
【0020】
又、「JIS X 0213:2004」において漢字追加面(第2面)に収容されている漢字は303文字であり、2バイトの漢字コードから4バイトのユニコードに変換するパターンは303個程度である。
このため、図12で示されるコード変換テーブルT2のように要素が8836個(94×94)ある場合、4バイトコードへの変換が必要な文字は全体の4%程度であり、追加面の文字へのコード変換が303文字の場合、残り96%の要素において上位2バイトは不要な情報であり、無駄が大きい、という不都合があった。
【0021】
更に、関連技術の特許文献1の図13に示す仕組みを漢字2バイトコードからサロゲートペア(UTF−16の4バイトコード)へ変換する手段として利用するとともに、漢字2バイトコードからUTF−16の2バイトコードへの変換には図11のコード変換テーブルT1を使用してコード変換を行う場合には、以下の不都合があった。
すなわち、図13のコード変換テーブルT3を使用する上で変換元のコード範囲が、ユニコード(Unicode)の私用領域の範囲(E000h〜F8FFh)に限定されているため、漢字2バイトコードで使用するコード範囲(2121h〜7E7Eh)などが変換対象とならない。
このため、図13のコード変換テーブルT3を使用して漢字2バイトコードから、サロゲートペアへの変換を可能とするためには、図13のコード変換テーブルT3において、キーとなる値を漢字2バイトコードの全範囲とする必要があった。
【0022】
更に又、図14に示すように、図13の特許文献1のコード変換テーブルT3における私用領域文字コードの列を漢字2バイトコードに置き換えることが想定され得る。
このような図14のコード変換テーブルT4を使って漢字2バイトコードに対応するサロゲートペアへ変換しようとした場合、次の不都合があった。
【0023】
すなわち、図14のコード変換テーブルT4を使用した場合、1文字を変換するごとに図13のコード変換テーブルT4を検索しなければならない。その理由は、図14のコード変換テーブルT4を検索する条件を限定できないためである。
ここで、漢字2バイトコードは、JISコードに限らず、ベンダ独自の漢字コードなど、2バイトで表すことのできる漢字コードを対象としている。このため、サロゲートペアに変換する可能性のある変換元の漢字2バイトコードが、漢字2バイトコードの全範囲であるとすると、1文字の変換ごとにサロゲートペアに変換するべき漢字2バイトコードであるか図14のコード変換テーブルT4を検索して判断する必要があり、多大な時間を要することになる。
【0024】
このように、仮に、特許文献1のコード変換テーブルを応用したとしても、2バイトから2バイトへ変換するコード変換に比べて、2バイトから4バイトへのコード変換を行うに際しては、コード変換における処理速度が遅くなる、という不都合があった。
更に、上記特許文献1では、変換テーブルの要素に4バイトデータが必要であり、テーブルのサイズ、テーブルの格納領域が膨大となり、比較的少ないメモリ容量の組み込み機器などコード変換を実装する装置に前記変換テーブルを搭載することができない、という不都合があった。
【0025】
加えて、特許文献2においても、変換テーブルの要素に4バイトデータが必要であり、テーブルのサイズ、テーブルの格納領域が膨大となり、比較的少ないメモリ容量の組み込み機器などコード変換を実装する装置には前記変換テーブルを搭載することができない、という不都合があった。
【0026】
(発明の目的)
本発明の目的は、上述の関連技術の不都合を解決することにあり、コード変換するに際し、変換テーブルの格納領域を最小限にして組み込み機器などコード変換を実装する装置に変換テーブルを搭載可能としながらも、コード変換にかかる処理時間の短縮化を可能ならしめるコード変換システム、コード変換装置、コード変換方法、及びコード変換プログラムを提供することにある。
【課題を解決するための手段】
【0027】
上記目的を達成するため、本発明のコード変換システムは、1つの文字情報に対して予め割り当てられているバイト数の第1情報量にかかる第1コードを入力する入力装置と、この入力された前記第1コードを、予め設けられたコード変換テーブルを参照して当該第1コードと異なるコード体系であって前記文字情報に対する前記第1情報量にかかる第2コード又はこれより多いバイト数の第2情報量にかかる第2コードに変換するコード変換装置と、このコード変換装置用として当該コード変換装置に併設され前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられ且つ前記第1情報量の値を要素とする基本多言語面変換テーブルと前記第1情報量の値の一部と前記第2情報量より少ないバイト数から成る第3情報量の第1中間コードとが対応づけられ且つ前記第3情報量の値を要素とする追加面変換テーブルとを具備した記憶装置と、前記コード変換装置にて変換された前記第1情報量又は前記第2情報量の前記第2コードを出力する出力装置とを備えている。
【0028】
そして、前述したコード変換装置は、前記基本多言語面変換テーブルを参照し、前記第1情報量が前記第1情報量の値の一部の範囲である場合には前記追加面変換テーブルを参照して前記第3情報量の前記第1中間コードを出力すると共に、この第3情報量の前記第1中間コードに対して予め定められた演算処理を施して前記第2情報量の前記第2コードを生成し出力する第2コード生成出力機能を備えていることを特徴とする。
【0029】
上記目的を達成するため、本発明のコード変換装置は、1つの文字情報に対して予め割り当てられている第1情報量の第1コードを入力しこの第1コードを基本多言語面変換テーブル及び追加面変換テーブルの一方又は双方を参照することにより、前記第1コードと異なるコード体系であって前記文字情報に対して前記第1情報量の場合又はこれより多い第2情報量の場合が存在し得る第2コードに変換して出力するコード変換装置であって、前述した基本多言語面変換テーブルは、前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられて前記第1情報量の値を要素とするデータ構造を備え、前記追加面変換テーブルは、前記要素の一部と前記第2情報量より少ない第3情報量の第1中間コードとが対応づけられて前記第3情報量の値を要素とするデータ構造を備えている。
【0030】
そして、前述した基本多言語面変換テーブルを参照した結果、前記第1コードが前記要素の一部の範囲である場合には、前記追加面変換テーブルを参照して当該第1コードに対応する前記第3情報量の前記第1中間コードを出力機能と、この第3情報量の前記第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成して出力する機能とを備えたことを特徴とする。
【0031】
上記目的を達成するため、本発明のコード変換方法は、1つの文字情報に対して予め割り当てられているバイト数の第1情報量にかかる第1コードが入力された場合に当該第1コードを、予め設けられたコード変換テーブルを参照して当該第1コードと異なるコード体系であって前記文字情報に対する前記第1情報量にかかる第2コード又はこれより多いバイト数の第2情報量にかかる第2コードに変換するコード変換装置と、このコード変換装置用として当該コード変換装置に併設され、前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられ且つ前記第1情報量の値を要素とする基本多言語面変換テーブル、及び前記第1情報量の値の一部と前記第2情報量より少ないバイト数から成る第3情報量の第1中間コードとが対応づけられ且つ前記第3情報量の値を要素とする追加面変換テーブルを備えたコード変換システムにあって、
入力された前記第1コードを前記基本多言語面変換テーブル及び前記追加面変換テーブルの一方又は双方を参照することにより、前記第1コードと異なるコード体系であって前記文字情報に対して前記第1情報量の場合又はこれより多い第2情報量の場合が存在し得る第2コードにコード変換装置が変換し、 しかる後、この変換された前記第1情報量又は前記第2情報量の前記第2コードが外部出力される構成とし、
前記コード変換装置による変換に際しては、最初に前記基本多言語面変換テーブルを参照し、その参照結果が前記要素の一部の範囲である場合に、次に前記追加面変換テーブルを参照して前記第3情報量の前記第1中間コードを出力し、この第3情報量の前記第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成することを特徴とする。
【0032】
上記目的を達成するため、本発明のコード変換プログラムは、1つの文字情報に対して予め割り当てられているバイト数の第1情報量にかかる第1コードが入力された場合に当該第1コードを、予め設けられたコード変換テーブルを参照して当該第1コードと異なるコード体系の第2コードに変換するコード変換装置と、このコード変換装置用として当該コード変換装置に併設され、前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられ且つ前記第1情報量の値を要素とする基本多言語面変換テーブル、及び前記第1情報量の値の一部と前記第2情報量より少ないバイト数から成る第3情報量の第1中間コードとが対応づけられ且つ前記第3情報量の値を要素とする追加面変換テーブルを備えたコード変換システムにあって、
入力された前記第1情報量の第1コードを前記基本多言語面変換テーブル及び追加面変換テーブルの一方又は双方を参照して前記第1コードと異なるコード体系であって前記文字情報に対してバイト数が前記第1情報量の場合又はこれより多い第2情報量の場合の第2コードに変換するコード変換機能、及びこの変換された前記第1情報量又は前記第2情報量の前記第2コードを出力する出力処理機能を有し、
前記コード変換処理機能では、前記第1コードの変換処理に際し、前記基本多言語面変換テーブルを参照すると共にその参照結果が前記要素の一部の範囲にある場合に、前記追加面変換テーブルを参照して変換処理し前記第3情報量の前記第1中間コードを出力する第1中間コード出力処理機能、 及びこの出力処理された第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成しこれを出力する第2コード生成処理機能、 をその内容とし、
これら各処理機能を前記コード変換装置が備えているコンピュータに実行させるようにしたことを特徴とする。
【発明の効果】
【0033】
本発明によれば、追加面変換テーブルを第2情報量より少ない第3情報量を要素として構成し、第2情報量の第2コードを生成するためのコード変換では、追加面変換テーブルより第3情報量の第1中間コードを取り出してこれに予め定められた演算処理を施し前記第2情報量の第2コードを生成するようにしたので、前述した関連技術のような第2情報量の変換テーブルを構成する必要がなく、コード変換するに際し、変換テーブルの格納領域を最小限にして組み込み機器などコード変換を実装する装置に変換テーブルを搭載可能としながらも、コード変換にかかる処理時間の短縮化が可能となり、変換処理の高速化を図ることができる、という、関連技術にない優れたコード変換システム、コード変換装置、コード変換方法、及びコード変換プログラムを提供することができる。
【図面の簡単な説明】
【0034】
【図1】本発明の第1実施形態によるコード変換システムの全体構成の一例を示すブロック図である。
【図2】図1に開示した実施形態のコード変換システムにおける基本多言語面変換テーブルのデータ構造の一例を示す説明図である。
【図3】図1に示すコード変換システムにおける追加面変換テーブルのデータ構造の一例を示す説明図である。
【図4】図1に開示した実施形態のコード変換システムにおける動作の一例を示すフローチャートである。
【図5】図1に開示した実施形態のコード変換システムにおける全体の動作を示すフローチャートである。
【図6】本発明の第2実施形態におけるコード変換システムの全体構成の一例を示すブロック図である。
【図7】図6に開示した第2実施形態のコード変換システムにおける動作の一例を示すフローチャートである。
【図8】本発明の第3実施形態におけるコード変換システムの全体構成の一例を示すブロック図である。
【図9】図8に開示した第3実施形態のコード変換システムにおける追加面N変換テーブルのデータ構造の一例を示す説明図である。
【図10】図8に開示した第3実施形態のコード変換システムにおける動作の一例を示すフローチャートである。
【図11】関連技術におけるコード変換テーブルのデータ構造の一例を示す説明図である。
【図12】関連技術におけるコード変換テーブルの他のデータ構造の一例を示す説明図である。
【図13】関連技術におけるコード変換テーブルの更に他のデータ構造の一例を示す説明図である。
【図14】関連技術におけるコード変換テーブル(変形例)のデータ構造の一例を示す説明図である。
【発明を実施するための形態】
【0035】
以下、本発明の第1の実施形態にかかるコード変換システムを図1乃至図5に基づいて説明する。
この第1実施形態におけるコード変換システム1は、漢字2バイトコードからユニコード(Unicode/2バイトと4バイトの混在)へ変換を行うにあたり、必要最低限のメモリ容量で高速にコード変換を行うことを意図した構成となっている。
【0036】
そして、これを実現するために、本第1実施形態では、漢字2バイトコードをユニコード(Unicode)へ変換するに際し、まず、基本多言語面変換部21と追加面変換部22とを備え、各変換部に対応して、基本多言語面変換テーブル記憶部31および追加面変換テーブル記憶部32が、それぞれ併設されている。
【0037】
基本多言語面変換テーブル記憶部31には、漢字2バイトコードに対応したUnicode(UTF−16符号化形式の2バイトコード)が予め格納されている。そして、この基本多言語面変換テーブル記憶部31では、変換先が漢字追加面のUnicode(2バイトコード)となる文字の変換に際しては、文字が割り当られることのないサロゲートペアで使われるコード範囲(D800h〜DFFFh)の2バイト値が割り当てられてこれを、保持する。
【0038】
又、追加面変換部22は、基本多言語面変換部21でD800h〜DFFFhの値を取得したときのみ使用する。追加面変換部22は、その変換動作時には追加面変換テーブル記憶部32を参照する。ここで、追加面変換テーブル記憶部32は、D800h〜DFFFhの1コードにつき2バイトで構成し、D800h〜DFFFhの値で直接参照可能とする。
【0039】
そして、追加面変換部22から得られる2バイトから、ユニコード面区点生成手段112とユニコードUTF−16符号化手段113により、漢字追加面のユニコード(4バイト)が変換出力される。
以下、これを具体的に説明する。
【0040】
〔第1の実施の形態〕
先ず、本実施形態におけるコード変換システムの基本的構成について説明する。
本第1実施形態におけるコード変換システム1は、図1に示すように、予め1つの文字情報に対して割り当てられているバイト数の第1情報量の第1コードを入力する入力装置10を備えている。
【0041】
又、コード変換システム1は、入力装置10にて入力された前記第1コードを基本多言語面変換テーブル31a及び追加面変換テーブル32aの一方又は双方を参照することにより、前記第1コードと異なるコード体系であって前記文字情報に対して前記第1情報量の場合又はこれより多い第2情報量の場合が存在し得る第2コードに変換するコード変換装置20Aを備えている。
【0042】
更に、コード変換システム1は、記憶装置30を備えている。この記憶装置30は、前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられて前記第1情報量の値を要素とする基本多言語面変換テーブル31aを装備した基本多言語面変換テーブル記憶部31を備えている。更に、この記憶装置30は、前記要素の一部と前記第2情報量より少ない第3情報量の第1中間コードとが対応づけられて前記第3情報量の値を要素とする追加面変換テーブル32aを装備した追加面変換テーブル記憶部32を備えている。
また、コード変換システム1は、上記コード変換装置20Aにて変換された前記第1情報量又は第2情報量の前記第2コードを出力する出力装置40を備えている。
【0043】
コード変換装置20Aは、基本多言語面変換テーブル31aを参照した結果が前記要素の一部の範囲である場合には、次に追加面変換テーブル32aを参照して前記第3情報量の第1中間コードを出力すると共に、この第3情報量の第1中間コードに予め定められた演算処理を施して前記第2情報量の第2コードを生成してこれを出力する機能を備えている。
【0044】
このようなコード変換システム1の基本的構成によれば、追加面変換テーブル32aは第2情報量より少ない第3情報量を要素として構成され、第2情報量の第2コードを生成するためのコード変換では、追加面変換テーブル32aを参照して第3情報量の第1中間コードを出力しこれに予め定められた演算処理を施して前記第2情報量の第2コードを生成するため、関連技術のような第2情報量の変換テーブルを構成する必要がなく、コード変換するに際し、変換テーブルの格納領域を最小限にして組み込み機器などコード変換を実装する装置に変換テーブルを搭載可能としながらも、コード変換にかかる処理時間の短縮化が可能となり、変換処理の高速化を図ることができる。
【0045】
(コード変換システムの全体構成)
次に、本第1実施形態のコード変換システムの具体的構成について、全体構成から説明し、続いて各部の詳細構成について図1を参照しつつ説明する。
図1は、本第1実施形態におけるコード変換システムの全体を示すブロック図である。
【0046】
この図1に示すように、本第1実施形態におけるコード変換システム1は、キーボード等の入力装置10と、プログラム制御により動作するコード変換装置20Aと、コード変換の対応を示す情報を記憶する記憶装置30と、ディスプレイ装置や印刷装置などの出力装置40とを備えている。
【0047】
記憶装置30は、図2に示す基本多言語面変換テーブル31aを記憶した基本多言語面変換テーブル記憶部31と、図3に示す追加面変換テーブル32aを記憶した追加面変換テーブル記憶部32とを備えている。
【0048】
(基本多言語面変換テーブルのデータ構造)
図2に示すように、基本多言語面変換テーブル31aは、漢字2バイトコードの一例として、上位1バイトを21h〜7Eh、下位1バイトを21h〜7Ehの範囲をもつ変換元の漢字2バイトコードに対応したマトリックス表であり、それぞれの要素に変換先のユニコード(UTF−16)を格納したデータ構造となっている。
【0049】
ここで、変換元に対応する変換先のユニコードが追加面の文字の場合、D800h〜DFFFhの値を格納する。
基本多言語面変換テーブル31aにおけるD800h〜DFFFhの値は、追加面の文字を一意に決定する値とし、変換先のUTF−16の値として扱わず、追加面変換部22が追加面変換テーブル記憶部32を参照するためのキーとして扱う。
更に、記憶装置30に実装する際は、変換元の2バイトコードの昇順で表の要素である2バイトを連続して格納した構造となっている。
【0050】
漢字2バイトコードからユニコードへの変換に際して基本多言語面変換部21が参照する基本多言語面変換テーブル記憶部31は、漢字2バイトコードに対応したユニコード(UTF−16符号化形式の2バイトコード)が予め格納されている。この基本多言語面変換テーブル記憶部31には、変換先が漢字追加面のユニコード(4バイトコード)となる文字変換に対しては、文字が割り当てられることのないサロゲートペアで使われるコード範囲(D800h〜DFFFh)の2バイト値を割り当てて格納されている。
【0051】
ここで、前記基本多言語面変換テーブル31aでは、前記第1バイト数(2バイトなど)の第1コード(2121hなど)と前記第1バイト数の前記第2コード(3000hなど)とが対応づけられており、前記第1バイト数の第2コードが予め定められた範囲内となる特定範囲内第1バイト数第2コード(D800h〜DFFFhなど:第1領域)と前記範囲外となる特定範囲外第1バイト数第2コード(D800h〜DFFFh以外:第2領域)とを含むデータ構造を備えている。
【0052】
この点を更に詳述すると、基本多言語面変換テーブル31aは、前記第1コードを前記第1バイト数の第2コードに変換するために、前記第1バイト数(2バイトなど)の第1コードを少なくとも2つの上位バイト及び下位バイト毎に分解した第1コード分解上位バイト数(上位1バイトなど)の一の分解第1コード(74hなど)及び第1コード分解下位バイト数(下位1バイトなど)の他の分解第1コード(22hなど)と、前記第1バイト数(2バイトなど)の前記第2コード(E001hなど)とが対応づけられているデータ構造を備えている。
【0053】
即ち、上記基本多言語面変換テーブル31aは、前記第1情報量(第1バイト数の一例である2バイトなど)の第1コード(2121hなど)と前記第1情報量の第2コード(3000hなど)とが対応づけられて前記第1情報量の値を要素とするデータ構造を備えている。
【0054】
(追加面変換テーブルのデータ構造)
図3に示すように、追加面変換テーブル32aは、上位1バイトをD8h〜DFh、下位1バイトを00h〜FFhの範囲をもつ2バイトに対応したマトリックス表であり、それぞれの要素に変換先のユニコードの区点情報(UTF−32の下位2バイト)を格納している。ここにおいて、ユニコードにおける漢字追加面は第2面固定であり、追加面の情報(UTF−32の上位2バイト)は省略する。
【0055】
この追加面変換テーブル32aは、上述した基本多言語面変換テーブル31aにおける第1情報量(第1バイト数など)の第2コード群([ 3000h] など)の内、予め定められた範囲内にある(第1情報量の)特定範囲コード(D800h〜DFFFhなど)と、前記第2情報量より少ない第3情報量(本第1実施形態では、第3情報量=第1情報量=第1バイト数である2バイトとなっている)の第1中間コード(000Bhなど)とが対応づけられたデータ構造を備えている。つまり、この追加面変換テーブル32aは、前記第3情報量が前記第1情報量と同一となる情報量で構成されている。
【0056】
更に詳述すると、追加面変換テーブル32aは、前述した基本多言語面変換テーブル31aにおける第1バイト数の第2コード(3000hなど)が予め定められた範囲内となる特定範囲第1バイト数第2コード(D800h〜DFFFhなど)を、少なくとも2つの上位バイト及び下位バイト毎に分解した第2コード分解上位バイト数(上位1バイトなど)の一の分解特定範囲第2コード(D8hなど)及び第2コード分解下位バイト数(下位1バイトなど)の他の分解特定範囲第2コード(01hなど)と、変換先の(前記第1バイト数の)第1中間コード(0088hなど)とが対応づけられているデータ構造を備えている。
【0057】
ここで、この追加面変換テーブル32aは、前述した基本多言語面変換テーブル31aにおける前記要素の一部(D800h〜DFFFhなど)と前記第2情報量より少ない第3情報量の第1中間コード(000Bhなど)とが対応づけられて前記第3情報量の値を要素とするデータ構造を備えている。
【0058】
そして、この追加面変換テーブル32aは、記憶装置30での実装上は、変換元の2バイト値の昇順で表の要素である2バイト値を連続して格納したイメージとなる。又、漢字追加面に対応する文字が少ない場合、要素数は必要に応じて少なくすることができる。
【0059】
(コード変換装置の具体的構成)
コード変換装置20Aは、図1に示すように、第1コードの一例である漢字2バイトコードから第2コードの一例であるユニコード(2バイトコードと4バイトコードの混在)へ変換を行うにあたり、必要最低限のメモリ容量で高速にコード変換を行うものであり、基本多言語面変換部21と、追加面変換部22と、ユニコード面区点生成部23と、ユニコードUTF−16符号化部24とを備えている。
【0060】
即ち、コード変換装置20Aは、追加面変換部22から得られる2バイトから、ユニコード面区点生成部23とユニコードUTF−16符号化部24とにより、漢字追加面のユニコード(4バイト)を出力する機能を備える。
換言すると、コード変換装置20Aは、予め1つの文字情報に対して割り当てられている第1情報量(第1バイト数の一例である2バイト)の第1コードを入力し、この第1コードを基本多言語面変換テーブル31a及び追加面変換テーブル32aの一方又は双方を参照することにより、前記第1コードと異なるコード体系であって前記文字情報に対して前記第1情報量の場合又はこれより多い第2情報量(第2バイト数の一例である4バイト)の場合が存在し得る第2コードに変換して、これを出力する機能を備えている。
【0061】
ここで、基本多言語面変換部21は、入力装置10から与えられた2バイトの値をキーにして基本多言語面変換テーブル記憶部31に記憶されている値を取得する機能を備えている。
【0062】
又、追加面変換部22は、D800h〜DFFFhの値をキーにして追加面変換テーブル記憶部32に記憶されている値(第1中間コード)を取得する機能を備えている。そして、この追加面変換部22は、コード変換に際しては追加面変換テーブル記憶部32を参照する。
更に、この追加面変換部22は、基本多言語面変換部21で、D800h〜DFFFhの値を取得したときのみ使用する。追加面変換テーブル記憶部32は、D800h〜DFFFhの1コードにつき2バイトで構成し、D800h〜DFFFhの値で、直接参照可能とする。
【0063】
ユニコード面区点生成部23は、追加面変換部22で参照した値(第1中間コード)をUTF−32における下位2バイトとし、上位2バイトに漢字追加面を示す固定値を付加して第2中間コードとする機能を備えている。
又、ユニコードUTF−16符号化部24は、上記ユニコード面区点生成部23で生成したUTF−32の値(第2中間コード)をUTF−16のサロゲートペア(4バイト)の値(第2コード)に変換する機能を備えている。
【0064】
更に、前述した基本多言語面変換部21は、基本多言語面変換テーブル31aを参照して得られる前記第1情報量の第2コードが前記範囲内であるかどうかを判定すると共に当該範囲外と判定された場合に稼働して前記第1コードを前記第1情報量の第2コードに変換してこれを出力する機能を備えている。
【0065】
又、追加面変換部22は、上記基本多言語面変換部21において前記範囲内であると判定された場合に稼働し、前記追加面変換テーブル32aを参照して前記特定範囲コードを前記第3情報量の第1中間コードに変換する機能を備えている。
【0066】
ここで、ユニコード面区点生成部23とユニコードUTF−16符号化部24とにより変換後処理手段29aが構成されている。
この変換後処理手段29aは、第3情報量の前記第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成してこれを出力する機能を備えている。
【0067】
更に、上記追加面変換部22は、追加面変換テーブル32aを参照して前記特定範囲コードを前記第1情報量の第1中間コードに変換する機能を備えている。
この場合、ユニコード面区点生成部23は、前記追加面変換部22にて得られた前記第1情報量の第1中間コードに対して予め定められた演算処理を施して前記第2情報量の第2中間コードを生成する機能を備えている。
【0068】
又、前記符号化部の第1の符号化機能としてのユニコードUTF−16符号化部24は、ユニコード面区点生成部23で生成された前記第2情報量の第2中間コードに対して符号化結果が前記第2情報量となる第1の符号化形式で符号化処理を施し、これにより、前述した第2コードを出力する機能を備えている。
【0069】
更に、上記追加面変換部22は、前記上位バイトの一の分解特定範囲第2コードの値と前記下位バイトの他の分解特定範囲第2コードの値から前記追加面変換テーブル32aの要素を格納している位置を計算し、前述した第1中間コードの値を求める機能を備えている。
【0070】
又、上記ユニコード面区点生成部23は、前記追加面変換部22にて得られた第1中間コードを下位バイトとし、予め定められた第1固定値を上位バイトとしてこれを前記下位バイトに付加する機能を備えている。
【0071】
ここで、前記第1コードが漢字コードであり、前記第2コードが前記第1の符号化形式のユニコードである場合、前述した第1固定値は、前記第1の符号化形式と異なる第3の符号化形式のユニコードの漢字追加面を示す値である。
又、前記第1の符号化形式は、UTF(Universal multi octet coded characterset Transformation Format )―16であり、前記第3の符号化形式は、UTF―32である。
【0072】
(動作手順について)
(全体の動作)
次に、上記コード変換システムの全体の動作について、図1乃至図5を参照しつつ説明する。
【0073】
本実施形態におけるコード変換システム1は、図1に示したように、1つの文字情報に対して割り当てられている第1情報量の第1コードと前記第1情報量の第2コードとが対応づけられて前記第1情報量の値を要素とする基本多言語面変換テーブル31aと、前記要素の一部と前記第2情報量より少ないバイト数の第3情報量の第1中間コードとが対応づけられて前記第3情報量の値を要素とする追加面変換テーブル32aとを記憶装置30が予め備えている。
【0074】
このコード変換システム1のコード変換動作に際しては、先ず、前記第1情報量の第1コードを、入力装置10が入力する(図4/ステップS101;入力処理ステップ、入力処理機能)。
【0075】
続いて、この入力された第1コードを基本多言語面変換テーブル31a及び追加面変換テーブル32aの一方又は双方を参照することにより前記第1コードと異なるコード体系であって前記文字情報に対して前記第1情報量の場合又はこれより多いバイト数の第2情報量の場合が存在し得る第2コードに、コード変換装置20Aがコード変換する(図4/ステップS102;コード変換ステップ、コード変換機能)。
【0076】
その後、この変換された前記第1情報量又は前記第2情報量の第2コードを、出力装置40が出力する(図4/ステップS103;出力処理ステップ、出力処理機能)。
【0077】
ここで、前記変換をするに際しては、前述した基本多言語面変換テーブル31aを参照した結果が前記要素の一部の範囲である場合に、次に、追加面変換テーブル32aを参照して前記第3情報量の第1中間コードを出力すると共に、この第3情報量の前記第1中間コードに予め定められた演算処理を施して、前記第2情報量の第2コードを生成し、これを出力する(図5/ステップS111〜S115)。
【0078】
更に、このコード変換における動作手順では、追加面変換テーブル32aが、基本多言語面変換テーブル31aにおける前記第1情報量の第2コード群の内の予め定められた範囲内にある特定範囲コードと前記第2情報量より少ないバイト数の第3情報量の第1中間コードとが対応づけられたデータ構造を備えている場合、コード変換に際しては、先ず、基本多言語面変換テーブル31aを参照して得られる第1情報量の第2コードが前記範囲内であるかどうかを判定すると共に、当該範囲外と判定された場合に稼働し前記第1コードを第1情報量の第2コードに基本多言語面変換部21が第1の変換処理をして出力する(図5/ステップS111〜S112;第1の変換処理ステップ、第1の変換機能)。
【0079】
続いて、前記第1の変換処理において前記範囲内であると判定された場合に、追加面変換テーブル32aを参照して追加面変換部22が前記特定範囲コードを前記第3情報量の第1中間コードに変換する第2の変換処理工程を実行する(図5/ステップS113;第2の変換処理ステップ、第2の変換機能)。
【0080】
その後、この第3情報量の第1中間コードに予め定められた演算処理を施し、前記第2情報量の第2コードを、変換後処理手段29aが生成処理してこれを出力する変換後処理工程を実行する(図5/ステップS114〜S115;変換後処理ステップ、変換後処理機能)。
【0081】
更に、このコード変換における動作手順では、前記第2の変換処理を実行するに際しては、前記追加面変換テーブル32aにおける第3情報量が前記第1情報量と同一となる場合に、前記追加面変換テーブル32aを参照してその特定範囲コードを前記第1情報量の第1中間コードに変換する。
【0082】
又、前記変換後処理工程の実行するに際しては、先ず、前記第2の変換処理にて得られた第1情報量の第1中間コードに対して予め定められた演算処理を施し、前記第2情報量の第2中間コードを生成する第1の生成処理を変換後処理手段29aが実行する(図5/ステップS114;第1の生成処理ステップ,第1の生成機能)。
【0083】
続いて、この第1の生成処理にて生成された前記第2情報量の第2中間コードに対して予め設定されている符号化形式で符号化処理を施し前記第2コードを出力する符号化処理を、変換後処理手段29aが実行する(図5/ステップS115;符号化処理ステップ、符号化処理機能である第1の符号化機能)。
【0084】
更に、このコード変換における動作手順では、前記符号化処理の実行に際しては、前記第1の生成処理にて生成された第2情報量の第2中間コードに対して、符号化結果が前記第2情報量となる第1の符号化形式で符号化処理を施し、前記第2コードを出力する第1の符号化処理を変換後処理手段29aが実行する。
【0085】
(詳細動作)
以下、この動作手順を更に詳述する。
まず、入力装置10から与えられた漢字文字列は、2バイトごとの値に分けて基本多言語面変換部21に供給される。
基本多言語面変換部21は、供給された2バイトを上位1バイトと下位1バイトに分解し、上位バイトと下位バイトの値から基本多言語面変換テーブル記憶部31における要素(変換元の2バイトコードに対応する変換先のUTF−16の値)を格納している位置を計算した後、要素を取得する(図5/ステップS111;第1バイト第2コード取得ステップ、第1バイト第2コード取得機能)。
【0086】
次に、基本多言語面変換部21が取得した値についてD800h〜DFFFhの範囲にあるか調べる(図5/ステップS112;範囲判定ステップ、範囲判定機能)。
この図5のステップS112で、基本多言語面変換部21で取得した値が、D800h〜DFFFhの範囲外であった場合、この値がユニコード(UTF−16)の変換結果であるため変換は完了する。
【0087】
一方、基本多言語面変換部21で取得した値が、D800h〜DFFFhの範囲内であった場合、この値を追加面変換部22に供給する。
続いて、追加面変換部22は、供給された2バイトを上位1バイトと下位1バイトに分解し、上位バイトと下位バイトの値から追加面変換テーブル記憶部32における要素(変換元の2バイトに対応する変換先のUTF−32の下位2バイトの値)を格納している位置を計算した後、要素を取得する(図5/ステップS113:第1中間コード取得ステップ、第1中間コード取得機能)。
【0088】
更に、追加面変換部21が取得した値は、ユニコード面区点生成部23へ供給する。
次に、このユニコード面区点生成部23は、供給された2バイトをUTF−32における下位2バイトとし、上位2バイトには漢字追加面を示す0002h(固定値)を追加してユニコード(Unicode)の面区点を表す値(UTF−32符号化形式)を生成する(図5/ステップS114:第2中間コード生成ステップ、第2中間コード生成機能)。
【0089】
その後、ユニコード面区点生成部23が生成した値は、ユニコードUTF−16符号化部24に供給する。
ユニコードUTF−16符号化部24では、供給されたUTF−32の4バイトを元にUTF−16のサロゲートペアの4バイトに符号化する(図5/ステップS115;第2バイト第2コード生成ステップ、第2バイト第2コード生成機能)。
これにより、ユニコードUTF−16符号化部24による符号化の結果が変換結果であるため、変換は完了する。
【0090】
このようにして、変換先が漢字追加面のユニコード(Unicode/4バイト)となる場合のみ、追加面変換部22が稼動するため、実行コストが抑えられる。又、追加面変換部22は、追加面変換テーブル記憶部32の検索ではなく、参照して変換先の値を取得するため、追加面変換部22の実行コストも抑えることができる。
【0091】
ここで、基本多言語面変換テーブル記憶部31のテーブルサイズは一般に2バイトコードから2バイトコードへのコード変換で使用する関連技術の図10のコード変換テーブルT1のサイズと同じである。更に、追加面変換テーブル記憶部32のテーブルサイズは、漢字追加面の漢字数×2バイトであり、記憶装置30の記憶使用容量の増加を抑えることができる。
【0092】
次に、上記第1実施形態の効果について詳述する。
第1の効果は、漢字2バイトコードからユニコード(2バイトコードと4バイトコードの混在)へ変換するコード変換テーブルのサイズが一般的なコード変換テーブルを使用した場合に比べて約50〔%〕程度削減できることである。
【0093】
その理由は、一般的なコード変換テーブルを使用した場合、変換元の漢字1文字に対応する1つの要素が4バイトであるのに対し、本第1実施形態のコード変換テーブルは1つの要素が2バイトのためである。
即ち、本第1実施形態では、基本多言語面変換テーブル記憶部31におけるテーブル構造が、図10に示される関連技術と同じように2バイトの要素の連続にて構成されている。このため、基本多言語面変換テーブル記憶部31を図11のように4バイトの要素の連続で構成した場合に比較して、基本多言語面変換テーブル記憶部31のテーブルサイズ(即ち、記憶容量)を1/2にすることができる。
【0094】
具体的には、ユニコードの漢字追加面に収容されている漢字へ変換するために追加で用意するコード変換テーブルのサイズは、追加面に収容されている漢字の数×2バイトのサイズで済むためである。
【0095】
例えば、変換元の漢字2バイトコードが17369(94×94×2)個あり、このうち漢字追加面のユニコード(Unicode)へ変換する文字が303文字あり、これ以外の文字を基本多言語面のユニコード(Unicode)へ変換する場合、一般的なコード変換テーブルを使用すると、17369×4=69476バイト必要となる。
これに対して、本第1実施形態のコード変換テーブルを使用すると、17369×2+303×2=35344バイトであり、本発明のコード変換テーブルを使用した場合、一般的なコード変換テーブルを使用した場合の約50%のサイズとなる。
【0096】
第2の効果は、基本多言語面の文字コードにコード変換する場合、漢字2バイトコードからユニコード(Unicode/2バイト固定長)のコード変換と同等の速度でコード変換できることである。
【0097】
その理由は、漢字追加面のユニコード(Unicode)へ変換が必要なときのみ、漢字追加面への変換処理を行うためである。
関連技術のコード変換においても、基本多言語面のコード変換テーブルと追加面のコード変換テーブルを分け、テーブルサイズを小さくする手法が存在するが、この場合、1文字の変換ごとに、変換元の文字コードが漢字追加面のコード変換対象でないか、漢字追加面のコード変換テーブルを検索し、漢字追加面のコード変換対象でないこと確認した後に基本多言語面テーブルを参照するため、基本多言語面へのコード変換であってもコード変換の速度が落ちる。
【0098】
即ち、本第1実施形態では、漢字追加面の文字コードへ変換するための追加面変換部22、ユニコード面区点生成部23、及びユニコードUTF−16符号化部24は、追加面の文字コード(4バイト)へコード変換するときのみ稼働する。
基本多言語面変換部21は、関連技術と同一の変換機能を採用することもできるため、関連技術のUTF−16(2バイト)への変換は、関連技術と同等の速度で変換することができる。
【0099】
第3の効果は、漢字追加面の文字コードにコード変換する場合でも高速にコード変換できることにある。
その理由は、漢字追加面の文字コードにコード変換する場合、1回の基本多言語面変換テーブル31aの参照と、1回の追加面変換テーブル32aの参照と、1回の面区点生成処理と、1回のユニコード符号化処理で変換結果が得られるためである。
【0100】
ここで、面区点生成処理とユニコード符号化処理は単純な処理で実現できる。関連技術の場合のコード変換では、変換元の漢字2バイトコードをキーとした追加面変換テーブルの検索処理が発生するため、コード変換の速度が落ちる。
このように、本第1実施形態では、追加面変換部22は、追加面変換テーブル記憶部32を検索するのではなく、基本多言語面変換部21と同様の手法で追加面変換テーブル記憶部32を参照して値を取得する。このため、検索キーを元に追加面変換テーブル記憶部32を検索する場合に比して、変換結果を高速に取得することができる。
【0101】
また、本第1実施形態では、追加面変換テーブル記憶部32に記録する要素が追加面1文字の変換につき2バイトで済む。このため、追加面変換テーブル記憶部32のテーブルサイズを図13(関連技術)で示されるコード変換テーブルT4に比して、1/3のテーブルサイズ(記憶容量)とすることができる。
【0102】
以上のように、追加面変換テーブル32aは第2情報量より少ない第3情報量を要素として構成され、第2情報量の第2コードを生成するためのコード変換では、追加面変換テーブル32aを参照して第3情報量の第1中間コードを出力しこれに予め定められた演算処理を施して前記第2情報量の第2コードを生成するため、関連技術のような第2情報量の変換テーブルを構成する必要がなく、「 JIS X 0213:2004」に対応する日本語コードをサロゲートペアの拡張機能を有するユニコードにコード変換するに際し、変換テーブルの格納領域を最小限にして比較的少ないメモリ容量の組み込み機器などコード変換を実装する装置に変換テーブルを搭載可能としながらも、コード変換にかかる処理時間の短縮化が可能となり、変換処理の高速化を図ることができる。
【0103】
さらに、漢字2バイトコードからユニコードへ変換するとき、基本多言語面変換部21が参照する基本多言語面変換テーブル記憶部31において、漢字2バイトコードに対応したユニコード(UTF―16符号化形式の2バイトコード)を予め格納する。そして、この基本多言語面変換テーブル記憶部31において、変換先が漢字追加面のユニコード(4バイトコード)となる文字の変換では、文字が割り当てられることのないサロゲートペアで使われるコード範囲(D800h〜DFFFh)の2バイト値を割り当てて、これを格納する。
【0104】
また、追加面変換部22については、これを基本多言語面変換部21で(D800h〜DFFFh)の値を取得したときのみ使用する。この場合、追加面変換部22は、追加面変換テーブル記憶部31を参照し、追加面変換テーブル記憶部31は(D800h〜DFFFh)の1コードにつき2バイトで構成し、(D800h〜DFFFh)の値で直接参照可能とし、追加面変換部22から得られる2バイトから、ユニコード面区点生成部23とユニコードUTF−16符号化部24とにより漢字追加面のユニコード(Unicode/4バイト)を出力する。
【0105】
これにより、ユニコード(Unicode)の基本多言語面のサロゲートペアのコード範囲(D800h〜DFFFh)を追加面変換テーブル32aを指す値として利用でき、当該追加面変換テーブル32aを2バイトで構成し、漢字2バイトコードからユニコード(Unicode/JIS X 0213:2004)に変換対応するための使用メモリの増加を確実に抑えることができる。また、追加面変換テーブル32aを検索せず、参照することで、漢字追加面のユニコード(Unicode)へ変換する場合も高速にコード変換できる。
【0106】
以上、ブロック図における構成要素たる各手段及び各部が、電子回路ブロックなどからなるハードウエアであることを前提として述べたが、当該構成要素の一部又は全てが、コード変換装置20Aが備えたコンピュータにより実行可能なプログラムにより機能化された状態を示すソフトウエアモジュール構成であってもよい。
【0107】
この場合におけるハードウエア構成としては、制御部としてのプロセッサを備えている。即ち、物理的構成は例えば一又は複数のプロセッサと一又は複数のメモリ等であるが、各構成要素によるソフトウエア構成は、プログラムの制御によってプロセッサが発揮する複数の機能を、それぞれ複数の構成要素として表現したものとなる。
【0108】
プロセッサがプログラムによって実行されている動的状態(プログラムを構成する各手順を実行している状態)を機能表現した場合、プロセッサ内に実行部分にかかる各構成要素が構成されることになる。プログラムが実行されていない静的状態にあっては、各手段の構成を実現するプログラム全体(或いは各手段の構成に含まれるプログラム各部)は、メモリなどの記憶領域に記憶されている。
【0109】
以上に示した各部(手段)は、プログラムにより機能化されたコンピュータをプログラムの機能と共に実現し得るように構成しても、また、固有のハードウエアにより恒久的に機能化された複数の電子回路ブロックからなる装置で構成してもよい。
【0110】
また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム(ソフトウエアプログラム)化し、コンピュータに実行させてもよい。そして、以上説明した方法は、コンピュータがプログラムを記録媒体から読み込んで実行することによっても実現することが出来る。すなわち、上述のプログラムを、情報記録媒体に記録した構成であってもよい。
【0111】
〔第2の実施の形態〕
次に、本発明にかかるコード変換システムの第2の実施の形態を、図6乃至図7に基づいて説明する。
図6は、本第2実施形態にかかるコード変換システムを示すブロック図である。
【0112】
この図6において、本第2実施形態では、コード変換システム100におけるコード変換装置20Bが、上述した第1実施形態のコード変換装置20Aの構成の内、ユニコード0面区点生成部25が追加されている点と、ユニコードUTF−16符号化部24がユニコードUTF−8符号化部26に置き代わっている点が異なる。
【0113】
(詳細構成)
上述したコード変換システムのユニコード0面区点生成部25は、基本多言語面変換部21で参照した値をUTF−32における下位2バイトとし、上位2バイトに基本多言語面を示す固定値を付加する。
【0114】
又、ユニコードUTF−8符号化部26は、ユニコード面区点生成部23もしくはユニコード0面区点生成部25で生成した面区点情報(UTF−32符号化形式)をUTF−8(1〜4バイト)の値に変換する。
【0115】
更に、符号化部の一部である第2の符号化機能としてのユニコードUTF−8符号化部26は、前記第1の生成部としてのユニコード面区点生成部23にて生成された前記第2情報量の第2中間コードに対して符号化結果の情報量が可変長となる第2の符号化形式(UTF−8)で符号化処理を施して前記第2コードを出力する機能を備えている。
【0116】
ここで、ユニコード面区点生成部23とユニコード0面区点生成部25とユニコードUTF−8符号化部26とで、変換後処理手段29bを構成している。
この変換後処理手段29bは、前記基本多言語面変換部21から得られた前記範囲外の第1情報量の第2コードに対して予め定められた演算処理を施して第2情報量の第3中間コードを生成する第3の生成部としてのユニコード0面区点生成部25を備えている。
【0117】
前記ユニコードUTF−8符号化部26は、ユニコード0面区点生成部25にて生成された第2情報量の第3中間コードに対して、符号化結果の情報量が可変長となる前記第2の符号化形式で符号化処理を施し、第2コードを出力する機能を更に備えている。
【0118】
更に、第3の生成部としてのユニコード0面区点生成部25は、基本多言語面変換部21にて得られた第1バイト数の第2コードを下位バイトとし、予め定められた第2固定値を上位バイトとして前記下位バイトに付加する機能を備えている。
ここで、前記第2固定値は、前記第3の符号化形式(UTF−32)のユニコードの基本多言語面を示す値である。
【0119】
又、ユニコードUTF−8符号化部26は、前記第1バイト数の第2コードを下位バイトとし予め定められた第2固定値を上位バイトとして前記下位バイトに付加してなる前記第3の符号化形式の値を、符号化結果の情報量が可変長となる第2の符号化形式のユニコードに変換して出力する機能を備えている。
【0120】
又、前記第1の生成部であるユニコード面区点生成部23は、前記追加面変換部22にて得られた第1中間コードを下位バイトとし、予め定められた第1固定値を上位バイトとして前記下位バイトに付加する機能を備えている。
【0121】
ここで、前記第1コードが漢字コードであり、前記第2コードが第1の符号化形式又は第2の符号化形式のユニコードであり、前記第1固定値は前記第1の符号化形式及び前記第2の符号化形式と異なる第3の符号化形式(UTF−32)のユニコードの漢字追加面を示す値である。
更に、前記第1の符号化形式はUTF(Uneversal multi octet coded characterset Transformation Format )―16であり、前記第2の符号化形式はUTF―8であり、前記第3の符号化形式はUTF―32であるとする。
【0122】
(動作手順)
次に、図7のフローチャートを参照して本第2実施形態の動作について説明する。
【0123】
まず、本第2実施形態に係るコード変換システムにおける動作手順では、第1実施形態にかかる基本的手順(図5/ステップS111〜S115)において、前記符号化処理を実行するに際しては、第1の生成処理にて生成された第2情報量の第2中間コードに対して、符号化結果の情報量が可変長となる第2の符号化形式で符号化処理を施して、第2コードを出力する第2の符号化処理を実行する(図7/ステップS206;第2の符号化処理ステップ,第2の符号化機能)。
ここで、図7のステップS201〜S204は、前述した図5のステップS111〜S115と同一である。
【0124】
本第2実施形態に係るコード変換システムにおける動作手順では、第1実施形態にかかる基本的手順において、前記変換後処理を実行するに際しては、前記第1の変換処理から得られた前記範囲外の前記第1情報量の第2コードに対して予め定められた演算処理を施して前記第2情報量の第3中間コードを生成する第3の生成処理を、更に実行する(図7/ステップS205;第3の生成処理ステップ、第3の生成機能)。
【0125】
又、前記第2の符号化処理の実行に際しては、上記第3の生成処理にて生成された前記第2情報量の第3中間コードに対して、符号化結果の情報量が可変長となる前記第2の符号化形式で符号化処理を施し、前記第2コードを出力する。
【0126】
以下、これを更に詳述する。
まず、基本多言語面変換部21で取得した値が、D800h〜DFFFhの範囲内にある場合は、前記第1実施形態と同様に、この値を追加面変換部22に供給する。
又、基本多言語面変換部21で取得した値がD800h〜DFFFhの範囲外であった場合(図7に示すステップS201の「No」)、この値をユニコード0面区点生成部25に供給する。
【0127】
次に、ユニコード0面区点生成部25では、供給された2バイトをUTF−32の下位2バイトとし、上位2バイトに、基本多言語面を示す0000hを追加してユニコードの面区点を表す値(UTF−32符号化形式)を生成する(図7/ステップS205)。
【0128】
続いて、ユニコード0面区点生成部25が生成した値は、ユニコードUTF−8符号化部26に供給する。その後、ユニコードUTF−8符号化部26は、供給されたUTF−32の4バイトを、UTF−8(1〜4バイトの可変長)に符号化して出力する(図7/ステップS206)。
【0129】
次に、本第2実施形態の効果について説明する。
本第2実施形態では、基本多言語面変換部21や追加面変換部22で取得した値をUTF−32の値とした上で、ユニコードUTF−8符号化部26に供給するように構成されている。このため、漢字2バイトコードからユニコード(UTF−8)へ変換することができる。
【0130】
また、本第2実施形態では、さらに、記憶装置30上に格納する基本多言語面変換テーブル記憶部31及び追加面変換テーブル記憶部32、又これらを参照する基本多言語面変換部21及び追加面変換部22は、第1実施形態に係るユニコード(UTF−16)の変換と同一の構成となる。
このため、UTF−16とUTF−8の変換で変換部と変換テーブルとを供用でき、従って、コード変換テーブルを増やすことなくUTF−8の変換を行うことができる。
【0131】
その他の構成およびその他のステップないしは機能並びにその作用効果については、前述した第1の実施形態と同一となっている。
また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム化(ソフトウエアプログラム)し、コンピュータに実行させてもよい。
【0132】
〔第3の実施の形態〕
次に、本発明にかかる第3の実施形態について、図8乃至図10に基づいて説明する。
【0133】
図8において、本第3実施形態にかかるコード変換システム200は、コード変換装置20Cが、図1に開示した第1実施形態におけるコード変換装置20Aにおいて、追加面変換部22を追加面N変換部27に置き代えた点と、ユニコード面区点生成部23をユニコードN面区点生成部28に置き代えた点が異なる。更に、図8に示すように、記憶装置30では、図1に開示した第1実施形態における記憶装置30における追加面変換テーブル記憶部32を追加面N変換テーブル記憶部38とした点が異なる。
【0134】
上記追加面N変換部27は、コード変換の実行に際しては、D800h〜DFFFhの値をキーにして追加面N変換テーブル記憶部38に記憶されている値を参照する。
ユニコードN面区点生成部28は、3バイトの値を受け取り、この値をUTF−32における下位3バイトとし、上位1バイトに00hを付加する。
【0135】
ここで、上記追加面N変換テーブル記憶部38における追加面変換テーブル38aは、図9に示すように、上位1バイトをD8h〜DFh、下位1バイトを00h〜FFhの範囲をもつ2バイトに対応したマトリックス表を備えており、それぞれの要素に変換先のユニコードの面区点の情報(UTF−32の下位3バイト)を格納している。
ここで、記憶装置30の実装上は、変換元の2バイト値の昇順で表の要素である3バイトを連続して格納したイメージとなる。
【0136】
ここで、前記追加面変換テーブル38aは、前記第3情報量が、前記第1情報量(第1バイト数の一例である2バイト)より多く且つ前記第2情報量(第2バイト数の一例である4バイト)より少ない情報量(3バイト)で構成されている。
【0137】
これを更に詳述すると、追加面変換テーブルの一例である第3変換テーブルとしての追加面N変換テーブル38aは、前記基本多言語面変換テーブル31における前記第1バイト数の第2コードが予め定められた範囲内となる特定範囲第1バイト数第2コードを、少なくとも2つの上位バイト及び下位バイト毎に分解した第2コード分解上位バイト数(上位1バイト)の一の分解特定範囲第2コード(D8hなど)及び第2コード分解下位バイト数(下位1バイト)の他の分解特定範囲第2コード(00hなど)と、変換先となる前記第1バイト数と前記第2バイト数の間の第3バイト数(3バイトなど)の第1中間コードの一例である第4中間コード(02000Bhなど)とが、対応づけられているデータ構造を備えている。
【0138】
又、前述した追加面N変換部27は、前記追加面N変換テーブル38aを参照して前記特定範囲コードを前記第3情報量(3バイト)の前記第1中間コードに変換する機能を備えている。
【0139】
ここで、ユニコードN面区点生成部28とユニコードUTF−16符号化部24とで、変換後処理手段29cが構成されている。
そして、この変換後処理手段29cが、前述した追加面N変換部27にて得られた前記第3情報量の第1中間コードに対して予め定められた演算処理を施して、前記第2情報量の第2中間コードを生成する第2の生成部であるユニコードN面区点生成部28を備えている。
【0140】
更に、この変換後処理手段29cは、このユニコードN面区点生成部28(第2の生成部)で生成された前記第2情報量の第2中間コードに対して、予め設定されている符号化形式で符号化処理を施し、前記第2コードを出力する符号化部であるユニコードUTF−16符号化部24を備えている。
その他の構成は、前述した第1実施形態と同一となっている。
【0141】
(動作手順)
次に、本第3実施形態の動作を図10に基づいて説明する。
先ず、本第3実施形態では、前述した第1実施形態における基本的動作手順において、前記第2の変換処理を実行するに際しては、前記追加面N変換テーブル38aにおける前記第3情報量が前記第1情報量より多く前記第2情報量より少ない場合に、前記追加面N変換テーブル38aを参照して前記特定範囲コードを前記第3情報量の第1中間コードに変換する(図10/ステップS303;第2の変換処理ステップ、第2の変換機能)。
【0142】
更に、前記変換後処理を実行するに際しては、先ず、前記第2の変換処理にて得られた前記第3情報量の第1中間コードに対して予め定められた演算処理を施して前記第2情報量の第2中間コードを生成する第2の生成処理を実行する(図10/ステップS304;第2の生成処理ステップ、第2の生成機能)。
【0143】
続いて、この第2の生成処理にて生成された前記第2情報量の第2中間コードに対して予め設定されている符号化形式で符号化処理を施し、前記第2コードを出力する符号化処理を実行する(図10/ステップS305;符号化処理ステップ、符号化処理機能)。
【0144】
以下、これを詳述する。
まず、基本多言語面変換部21で取得した値が、D800h〜DFFFhの範囲内にある場合は、この値を追加面N変換部27に供給する。
【0145】
次に、追加面N変換部27は、供給された2バイトを上位1バイトと下位1バイトに分解し、上位バイトと下位バイトの値から追加面N変換テーブル記憶部38における要素(変換元の2バイトに対応する変換先のUTF−32の下位3バイトの値)を格納している位置を計算した後、要素を参照し、これを取得する(図10/ステップS303)。
【0146】
この追加面変換部22で取得した値は、ユニコードN面区点生成部28へ供給する。続いて、ユニコードN面区点生成部28は、供給された3バイト(面区点情報)をUTF−32における下位3バイトとし、上位1バイトに00h(固定値)を追加してユニコードのUTF−32の値を生成する(図10/ステップS304)。
その後、ユニコードN面区点生成部28で取得した値は、ユニコードUTF−16符号化部24に供給する。
【0147】
次に、上記第3実施形態の効果について説明する。
この第3実施形態では、追加面N変換テーブル記憶部38における追加面N変換テーブル38aについて、追加面変換テーブル32aの要素のそれぞれに面の情報を付加した構造である。
このため、変換先のユニコードを追加漢字面(第2面)のみでなく、追加面に収容されている他の文字にも変換することができる。
【0148】
その他の構成およびその他のステップないしは機能並びにその作用効果については、前述した第1実施形態の場合と同一となっている。
また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム化(ソフトウエアプログラム)し、コンピュータに実行させるように構成してもよい。
【0149】
〔その他の各種変形例〕
また、本発明にかかる装置及び方法は、そのいくつかの特定の実施の形態に従って説明してきたが、本発明の主旨および範囲内において本発明の本文に記述した実施の形態に対して種々の変形が可能である。
【0150】
ところで、このような装置、システムは、単独で存在する場合もあるし、ある機器(例えば電子機器の機能として組み込まれているなど)に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含む。
更に、コード変換システムを搭載した電子機器は、プログラム制御により動作し、ネットワーク関連の通信機能を有していてもよい。デスクトップ、ラップトップコンピュータ、その他無線・有線通信機能を有する情報機器、情報家電機器(テレビ・携帯音楽プレーヤ・ゲーム機)、またはこれに類するコンピュータなどいかなるコンピュータでもよく、移動式・固定式を問わない。
【0151】
更に、本発明は、文字コード変換に関し、特に漢字2バイトコードの文字列をJIS X 0213:2004に対応したUnicodeに変換する方法、及びUnicode追加面(4バイトコード)に変換する場合の変換テーブルを2バイト固定長で格納するといった用途に利用できる。
【0152】
また、本発明の範囲は、図示例に限定されないものとする。さらに、上記各実施の形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。つまり、上述の各実施の形態同士、或いはそれらのいずれかと各変形例のいずれかとの組み合わせによる例をも含む。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。
【産業上の利用可能性】
【0153】
本発明は、コンピュータシステム全般に利用できる。
【符号の説明】
【0154】
1 コード変換システム
10 入力装置
20A,20B,20C コード変換装置
21 基本多言語面変換部
22 追加面変換部
23 ユニコード面区点生成部(第1の生成部)
24 ユニコードUTF―16符号化部(符号化部,第1の符号化機能)
25 ユニコード0面区点生成部(第3の生成部)
26 ユニコードUTF―8符号化部(符号化部,第2の符号化機能)
27 追加面N変換部
28 ユニコードN面区点生成部(第2の生成部)
29a,29b,29c 変換後処理手段
30 記憶装置
31 基本多言語面変換テーブル記憶部
31a 基本多言語面変換テーブル
32 追加面変換テーブル記憶部
32a 追加面変換テーブル
38 追加面N変換テーブル記憶部
38a 追加面N変換テーブル
40 出力装置

【特許請求の範囲】
【請求項1】
1つの文字情報に対して予め割り当てられているバイト数の第1情報量にかかる第1コードを入力する入力装置と、
この入力された前記第1コードを、予め設けられたコード変換テーブルを参照して当該第1コードと異なるコード体系であって前記文字情報に対する前記第1情報量にかかる第2コード又はこれより多いバイト数の第2情報量にかかる第2コードに変換するコード変換装置と、
このコード変換装置用として当該コード変換装置に併設され、前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられ且つ前記第1情報量の値を要素とする基本多言語面変換テーブルと、前記第1情報量の値の一部と前記第2情報量より少ないバイト数から成る第3情報量の第1中間コードとが対応づけられ且つ前記第3情報量の値を要素とする追加面変換テーブルとを具備した記憶装置と、
前記コード変換装置にて変換された前記第1情報量又は前記第2情報量の前記第2コードを出力する出力装置とを備え、
前記コード変換装置は、
前記基本多言語面変換テーブルを参照し、前記第1情報量が前記第1情報量の値の一部の範囲である場合には前記追加面変換テーブルを参照して前記第3情報量の前記第1中間コードを出力すると共に、この第3情報量の前記第1中間コードに対して予め定められた演算処理を施して前記第2情報量の前記第2コードを生成し出力する第2コード生成出力機能を備えていることを特徴とするコード変換システム。
【請求項2】
請求項1に記載のコード変換システムにおいて、
前記記憶部の追加面変換テーブルは、前記基本多言語面変換テーブルにおける前記第1情報量の第2コード群のうち予め定められた範囲内にある特定範囲コードと、前記第2情報量より少ないバイト数の第3情報量の第1中間コードとが対応づけられたデータ構造を備え、
前記コード変換装置が、
前記基本多言語面変換テーブルを参照して得られる前記第1情報量の第2コードが前記範囲内であるか否かを判定すると共に、当該範囲外と判定された場合に稼働し前記第1コードを前記第1情報量の第2コードに変換してこれを出力する基本多言語面変換部と、
この基本多言語面変換部にて第1情報量の第2コードが前記範囲内であると判定された場合に稼働し前記追加面変換テーブルを参照して前記特定範囲コードを前記第3情報量の前記第1中間コードに変換する追加面変換部と、
この第3情報量の前記第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成してこれを出力する変換後処理手段と、
を備えていることを特徴としたコード変換システム。
【請求項3】
請求項2に記載のコード変換システムにおいて、
前記追加面変換テーブルは、前記第3情報量が前記第1情報量と同一となる情報量で構成され、
前記追加面変換部は、前記追加面変換テーブルを参照して前記特定範囲コードを前記第1情報量の前記第1中間コードに変換する機能を備え、
前記変換後処理手段が、
前記追加面変換部にて得られた前記第1情報量の第1中間コードに対して予め定められた演算処理を施して前記第2情報量の第2中間コードを生成する第1の生成部と、
この第1の生成部で生成された前記第2情報量の第2中間コードに対して予め設定されている符号化形式で符号化処理を施し前記第2コードを出力する符号化部と、
を備えていることを特徴とするコード変換システム。
【請求項4】
請求項2に記載のコード変換システムにおいて、
前記追加面変換テーブルは、前記第3情報量が前記第1情報量より多く前記第2情報量より少ない情報量で構成され、
前記追加面変換部は、前記追加面変換テーブルを参照して前記特定範囲コードを前記第3情報量の前記第1中間コードに変換する機能を備え、
前記変換後処理手段が、
前記追加面変換部にて得られた前記第3情報量の第1中間コードに対して予め定められた演算処理を施して前記第2情報量の第2中間コードを生成する第2の生成部と、
この第2の生成部で生成された前記第2情報量の第2中間コードに対して予め設定されている符号化形式で符号化処理を施し前記第2コードを出力する符号化部と、
を備えていることを特徴とするコード変換システム。
【請求項5】
請求項3に記載のコード変換システムにおいて、
前記符号化部が、前記第1の生成部にて生成された前記第2情報量の第2中間コードに対して符号化結果が前記第2情報量となる第1の符号化形式で符号化処理を施して前記第2コードを出力する第1の符号化機能を備えていることを特徴とするコード変換システム。
【請求項6】
請求項3に記載のコード変換システムにおいて、
前記符号化部が、前記第1の生成部にて生成された前記第2情報量の第2中間コードに対して符号化結果の情報量が可変長となる第2の符号化形式で符号化処理を施し前記第2コードを出力する第2の符号化機能を備えていることを特徴とするコード変換システム。
【請求項7】
請求項6に記載のコード変換システムにおいて、
前記変換後処理手段は、前記基本多言語変換部から得られた前記範囲外の前記第1情報量の第2コードに対して予め定められた演算処理を施して前記第2情報量の第3中間コードを生成する第3の生成部を更に備え、
前記第2の符号化機能が、
この第3の生成部にて生成された前記第2情報量の第3中間コードに対して符号化結果の情報量が可変長となる前記第2の符号化形式で符号化処理を施し前記第2コードを出力する機能を更に備えていることを特徴とするコード変換システム。
【請求項8】
請求項7記載のコード変換システムにおいて、
前記第1情報量は第1バイト数であり、
前記第2情報量は第2バイト数であり、
前記追加面変換テーブルは、前記基本多言語面変換テーブルにおける前記第1バイト数の第2コード群のうち予め定められた範囲内にある前記第1バイト数の特定範囲コードを、少なくとも2つの上位バイト及び下位バイト毎に分解した上位バイトの一の分解特定範囲第2コード及び下位バイトの他の分解特定範囲第2コードと、変換先の前記第1中間コードとが、対応づけられたマトリクス表形式のデータ構造を備え、
前記追加面変換部が、
前記上位バイトの一の分解特定範囲第2コードの値と前記下位バイトの他の分解特定範囲第2コードの値から前記追加面変換テーブルの要素を格納している位置を計算して前記第1中間コードの値を求める機能を備えていることを特徴とするコード変換システム。
【請求項9】
請求項8に記載のコード変換システムにおいて、
前記第1の生成部が、前記第2の変換手段にて得られた前記第1中間コードを下位バイトとし、予め定められた第1固定値を上位バイトとして前記下位バイトに付加する機能を備えていることを特徴とするコード変換システム。
【請求項10】
請求項9に記載のコード変換システムにおいて、
前記第3の生成部が、前記第1の変換手段にて得られた前記第1バイト数の第2コードを下位バイトとし、予め定められた第2固定値を上位バイトとして前記下位バイトに付加する機能を備えていることを特徴とするコード変換システム。
【請求項11】
請求項10に記載のコード変換システムにおいて、
前記第1コードは漢字コードであり、
前記第2コードは前記第1の符号化形式又は前記第2の符号化形式の何れか一つのユニコードであり、
前記第1固定値は、前記第1の符号化形式及び前記第2の符号化形式と異なる第3の符号化形式のユニコードの漢字追加面を示す値である、ことを特徴とするコード変換システム。
【請求項12】
請求項11に記載のコード変換システムにおいて、
前記第2固定値は、前記第3の符号化形式のユニコードの基本多言語面を示す値である、ことを特徴とするコード変換システム。
【請求項13】
請求項12に記載のコード変換システムにおいて、
前記符号化部における前記第2の符号化機能は、
前記第1バイト数の第2コードを下位バイトとし予め定められた第2固定値を上位バイトとして前記下位バイトに付加してなる前記第3の符号化形式の値を、符号化結果の情報量が可変長となる第2の符号化形式のユニコードに変換して出力する機能であることを特徴とするコード変換システム。
【請求項14】
請求項13に記載のコード変換システムにおいて、
前記第1の符号化形式はUTF(Universal multi octet coded characterset Transformation Format )―16であり、前記第2の符号化形式はUTF―8であり、前記第3の符号化形式はUTF―32であることを特徴とするコード変換システム。
【請求項15】
1つの文字情報に対して予め割り当てられている第1情報量の第1コードを入力しこの第1コードを基本多言語面変換テーブル及び追加面変換テーブルの一方又は双方を参照することにより、前記第1コードと異なるコード体系であって前記文字情報に対して前記第1情報量の場合又はこれより多い第2情報量の場合が存在し得る第2コードに変換して出力するコード変換装置であって、
前記基本多言語面変換テーブルは、前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられて前記第1情報量の値を要素とするデータ構造を備え、
前記追加面変換テーブルは、前記要素の一部と前記第2情報量より少ない第3情報量の第1中間コードとが対応づけられて前記第3情報量の値を要素とするデータ構造を備えたものとし、
前記基本多言語面変換テーブルを参照した結果、前記第1コードが前記要素の一部の範囲である場合には、前記追加面変換テーブルを参照して当該第1コードに対応する前記第3情報量の前記第1中間コードを出力すると共に、この第3情報量の前記第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成してこれを出力する構成としたことを特徴とするコード変換装置。
【請求項16】
1つの文字情報に対して予め割り当てられているバイト数の第1情報量にかかる第1コードが入力された場合に当該第1コードを、予め設けられたコード変換テーブルを参照して当該第1コードと異なるコード体系であって前記文字情報に対する前記第1情報量にかかる第2コード又はこれより多いバイト数の第2情報量にかかる第2コードに変換するコード変換装置と、このコード変換装置用として当該コード変換装置に併設され、前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられ且つ前記第1情報量の値を要素とする基本多言語面変換テーブル、及び前記第1情報量の値の一部と前記第2情報量より少ないバイト数から成る第3情報量の第1中間コードとが対応づけられ且つ前記第3情報量の値を要素とする追加面変換テーブルを備えたコード変換システムにあって、
入力された前記第1コードを、前記基本多言語面変換テーブル及び前記追加面変換テーブルの一方又は双方を参照することにより、前記第1コードと異なるコード体系であって前記文字情報に対して前記第1情報量の場合又はこれより多い第2情報量の場合が存在し得る第2コードに、コード変換装置が変換し、
しかる後、この変換された前記第1情報量又は前記第2情報量の前記第2コードを外部出力する構成とし、
前記コード変換装置による変換に際しては、
最初に前記基本多言語面変換テーブルを参照し、その参照結果が前記要素の一部の範囲である場合に、次に前記追加面変換テーブルを参照して前記第3情報量の前記第1中間コードを出力し、この第3情報量の前記第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成することを特徴としたコード変換方法。
【請求項17】
請求項16に記載のコード変換方法において、
前記追加面変換テーブルは、前記基本多言語面変換テーブルにおける前記第1情報量の第2コード群の内、予め定められた範囲内にある特定範囲コードと、前記第2情報量より少ない第3情報量の第1中間コードとが対応づけられたデータ構造を予め備え、
前記変換に際しては、
先ず、前記基本多言語面変換テーブルを参照して得られる前記第1情報量の第2コードが前記範囲内であるかどうかを判定し、当該範囲外と判定された場合に前記コード変換装置の基本多言語面変換部が稼働して前記第1コードを前記第1情報量の第2コードに変換処理をしてこれを出力することを特徴とするコード変換方法。
【請求項18】
請求項16に記載のコード変換方法において、
前記追加面変換テーブルは、前記基本多言語面変換テーブルにおける前記第1情報量の第2コード群の内、予め定められた範囲内にある特定範囲コードと、前記第2情報量より少ない第3情報量の第1中間コードとが対応づけられたデータ構造を備え、
前記変換に際しては、
先ず、前記基本多言語面変換テーブルを参照して得られる前記第1情報量の第2コードが前記範囲内であるかどうかを判定し、当該範囲内と判定された場合に前記コード変換装置の追加面変換部が稼動して前記追加面変換テーブルを参照し前記特定範囲コードを前記第3情報量の前記第1中間コードに変換する変換処理を実行し、
この第3情報量の前記第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを、前記コード変換装置の変換後処理手段が生成してこれを出力することを特徴としたコード変換方法。
【請求項19】
請求項18に記載のコード変換方法において、
前記変換処理の実行に際しては、
前記追加面変換テーブルにおける前記第3情報量が前記第1情報量と同一となる場合に、前記追加面変換テーブルを参照して前記特定範囲コードを前記第1情報量の前記第1中間コードに変換し、
前記変換後処理の実行時に、
先ず、前記第2の変換処理にて得られた前記第1情報量の第1中間コードに対して予め定められた演算処理を施して前記第2情報量の第2中間コードを生成する第1の生成処理を実行し、
続いて、この第1の生成処理にて生成された前記第2情報量の第2中間コードに対して予め設定されている符号化形式で符号化処理を施し前記第2コードを出力する符号化処理を実行すること、を特徴としたコード変換方法。
【請求項20】
請求項18に記載のコード変換方法において、
前記変換処理の実行時に、
前記追加面変換テーブルにおける前記第3情報量が前記第1情報量より多く前記第2情報量より少ない場合には、前記追加面変換テーブルを参照して前記特定範囲コードを前記第3情報量の前記第1中間コードに変換し、
前記変換後処理の実行に際し、
先ず、前記第2の変換処理にて得られた前記第3情報量の第1中間コードに対して予め定められた演算処理を施して前記第2情報量の第2中間コードを生成する第2の生成処理を実行し、
続いて、この第2の生成処理にて生成された前記第2情報量の第2中間コードに対して予め設定されている符号化形式で符号化処理を施し前記第2コードを出力する符号化処理を実行することを特徴としたコード変換方法。
【請求項21】
請求項19に記載のコード変換方法において、
前記符号化処理を実行するに際しては、
前記第1の生成処理にて生成された前記第2情報量の第2中間コードに対して符号化の結果が前記第2情報量となる第1の符号化形式で符号化処理を施し、その後に前記第2コードを出力する第1の符号化処理を実行することを特徴としたコード変換方法。
【請求項22】
請求項19に記載のコード変換方法において、
前記符号化処理を実行するに際しては、
前記第1の生成処理にて生成された前記第2情報量の第2中間コードに対して符号化の結果の情報量が可変長となる第2の符号化形式で符号化処理を施し、その後に前記第2コードを出力する第2の符号化処理を実行することを特徴としたコード変換方法。
【請求項23】
請求項22に記載のコード変換方法において、
前記変換後の後処理を実行するに際しては、
前記第1の変換処理から得られた前記範囲外の前記第1情報量の第2コードに対して予め定められた演算処理を施して前記第2情報量の第3中間コードを生成する第3の生成処理を更に実行し、
前記第2の符号化処理を実行するに際しては、
この第3の生成処理にて生成された前記第2情報量の第3中間コードに対して符号化結果の情報量が可変長となる前記第2の符号化形式で符号化処理を施し、その後に前記第2コードを出力することを特徴としたコード変換方法。
【請求項24】
1つの文字情報に対して予め割り当てられているバイト数の第1情報量にかかる第1コードが入力された場合に当該第1コードを、予め設けられたコード変換テーブルを参照して当該第1コードと異なるコード体系の第2コードに変換するコード変換装置と、このコード変換装置用として当該コード変換装置に併設され、前記第1情報量の第1コードと前記第1情報量の前記第2コードとが対応づけられ且つ前記第1情報量の値を要素とする基本多言語面変換テーブル、及び前記第1情報量の値の一部と前記第2情報量より少ないバイト数から成る第3情報量の第1中間コードとが対応づけられ且つ前記第3情報量の値を要素とする追加面変換テーブルを備えたコード変換システムにあって、
入力された前記第1情報量の第1コードを前記基本多言語面変換テーブル及び追加面変換テーブルの一方又は双方を参照して前記第1コードと異なるコード体系であって前記文字情報に対してバイト数が前記第1情報量の場合又はこれより多い第2情報量の場合の第2コードに変換するコード変換機能、及びこの変換された前記第1情報量又は前記第2情報量の前記第2コードを出力する出力処理機能を有し、
前記コード変換処理機能では、
前記第1コードの変換処理に際し、前記基本多言語面変換テーブルを参照すると共にその参照結果が前記要素の一部の範囲にある場合に、前記追加面変換テーブルを参照して変換処理し前記第3情報量の前記第1中間コードを出力する第1中間コード出力処理機能、 及びこの出力処理された第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成しこれを出力する第2コード生成処理機能、
をその内容とし、これら各処理機能を前記コード変換装置が備えているコンピュータに実行させるようにしたことを特徴とするコード変換プログラム。
【請求項25】
請求項24に記載のコード変換プログラムにおいて、
前記追加面変換テーブルが、前記基本多言語面変換テーブルにおける前記第1情報量の第2コード群のうち予め定められた範囲内にある特定範囲コードと前記第2情報量より少ない第3情報量の第1中間コードとが対応づけられたデータ構造を予め備えており、
前記コード変換機能では、
前記基本多言語面変換テーブルを参照して得られる前記第1情報量の第2コードが前記範囲内であるか否かの判定で、当該範囲外と判定された場合に稼働し前記第1コードを前記第1情報量の第2コードに変換してこれを出力する第1の変換機能、
前記第1の変換機能において前記範囲内であると判定された場合に稼働し前記追加面変換テーブルを参照して前記特定範囲コードを前記第3情報量の前記第1中間コードに変換する第2の変換機能、
及びこの第3情報量の前記第1中間コードに予め定められた演算処理を施して前記第2情報量の前記第2コードを生成してこれを出力する変換後処理機能、
を有すること、をその内容とし、これらを前記コンピュータに実行させることを特徴とするコード変換プログラム。
【請求項26】
請求項25に記載のコード変換プログラムにおいて、
前記第2の変換機能では、
前記追加面変換テーブルにおける前記第3情報量が前記第1情報量と同一となる場合に、前記追加面変換テーブルを参照して前記特定範囲コードを前記第1情報量の前記第1中間コードに変換する機能をその内容とし、
前記変換後処理機能では、
前記第2の変換機能にて得られた前記第1情報量の第1中間コードに対して予め定められた演算処理を施して前記第2情報量の第2中間コードを生成する第1の生成機能、およびこの第1の生成機能にて生成された前記第2情報量の第2中間コードに対して予め設定されている符号化形式で符号化処理を施し前記第2コードを出力する符号化処理機能、
を有することをその内容とし、
これらを前記コンピュータに実行させることを特徴とするコード変換プログラム。
【請求項27】
請求項25に記載のコード変換プログラムにおいて、
前記第2の変換機能では、
前記追加面変換テーブルにおける前記第3情報量が前記第1情報量より多く前記第2情報量より少ない場合に、前記追加面変換テーブルを参照して前記特定範囲コードを前記第3情報量の前記第1中間コードに変換する機能をその内容とし、
前記変換後処理機能では、
前記第2の変換処理にて得られた前記第3情報量の第1中間コードに対して予め定められた演算処理を施して前記第2情報量の第2中間コードを生成する第2の生成機能、及びこの第2の生成機能にて生成された前記第2情報量の第2中間コードに対して予め設定されている符号化形式で符号化処理を施し前記第2コードを出力する符号化処理機能、
を有すること、をその内容とし、
これらを前記コンピュータに実行させることを特徴とするコード変換プログラム。
【請求項28】
請求項26に記載のコード変換プログラムにおいて、
前記符号化処理機能では、
前記第1の生成機能にて生成された前記第2情報量の第2中間コードに対して符号化結果が前記第2情報量となる第1の符号化形式で符号化処理を施し前記第2コードを出力する第1の符号化機能をその内容とし、
これを前記コンピュータに実行させることを特徴とするコード変換プログラム。
【請求項29】
請求項26に記載のコード変換プログラムにおいて、
前記符号化処理機能では、
前記第1の生成機能にて生成された前記第2情報量の第2中間コードに対して符号化結果の情報量が可変長となる第2の符号化形式で符号化処理を施し前記第2コードを出力する第2の符号化機能を、その内容とし、
これを前記コンピュータに実行させることを特徴とするコード変換プログラム。
【請求項30】
請求項29に記載のコード変換プログラムにおいて、
前記変換後処理機能では、前記第1の変換機能から得られた前記範囲外の前記第1情報量の第2コードに対して予め定められた演算処理を施して前記第2情報量の第3中間コードを生成する第3の生成機能を、その内容とし、
前記第2の符号化機能では、この第3の生成機能にて生成された前記第2情報量の第3中間コードに対して符号化結果の情報量が可変長となる前記第2の符号化形式で符号化処理を施し前記第2コードを出力する機能を、その内容とし、
これらを前記コンピュータに実行させることを特徴とするコード変換プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2011−8388(P2011−8388A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−149619(P2009−149619)
【出願日】平成21年6月24日(2009.6.24)
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】