JP6209901B2 - 文字データ処理方法、プログラム及び情報処理装置 - Google Patents

文字データ処理方法、プログラム及び情報処理装置 Download PDF

Info

Publication number
JP6209901B2
JP6209901B2 JP2013174800A JP2013174800A JP6209901B2 JP 6209901 B2 JP6209901 B2 JP 6209901B2 JP 2013174800 A JP2013174800 A JP 2013174800A JP 2013174800 A JP2013174800 A JP 2013174800A JP 6209901 B2 JP6209901 B2 JP 6209901B2
Authority
JP
Japan
Prior art keywords
character
data
length
variant
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013174800A
Other languages
English (en)
Other versions
JP2015043164A (ja
Inventor
正城 高塚
正城 高塚
昌弘 竹田
昌弘 竹田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013174800A priority Critical patent/JP6209901B2/ja
Priority to US14/467,401 priority patent/US9448975B2/en
Publication of JP2015043164A publication Critical patent/JP2015043164A/ja
Application granted granted Critical
Publication of JP6209901B2 publication Critical patent/JP6209901B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • G06F40/129Handling non-Latin characters, e.g. kana-to-kanji conversion

Description

本発明は、文字データ処理方法、情報処理方法、プログラム及び情報処理装置に関する。
従来、文字コードを考える上で、文字データの領域長(例えば、バイト(byte)数)と表示画面や帳票等に占めるフィールドの大きさとの対応関係は一通りに定められていた。例えば、英字・数字および濁点なしカタカナは半角の1バイト、日本語文字は全角の2バイト、濁点付きカタカナは半角の2バイト(1バイト+1バイト=2バイト)の領域長で表されており表示画面や帳票等に占めるフィールドの大きさと一致していた。このように、文字を扱う業務アプリケーションでは、帳票のフィールドの大きさ、アプリケーションで扱う文字データの大きさを宣言することで、フィールドの領域のサイズと文字データの表示サイズを整合させていた。従って、文字を扱う業務アプリケーションの開発者等は、文字データの表示サイズと文字データを出力するフィールドのサイズとの整合を意識せずにソフトウェアの開発を行っていた。
一方、JIS 2004で定義される文字を全て扱うことのできる文字コードとしてUnicode(UTF16)が登場し、1文字の日本語を2バイト、または4バイトの領域長で混在して扱う環境が普及し初めている。UTF16を利用した環境においても、文字を扱う業務アプリケーシ
ョンの開発者等は、入力された文字データの符号化としてUTF32を使用することで、2バ
イトまたは、4バイトの領域長で混在して扱っていた文字データを、1文字当り4バイトの固定長で設計することが可能である。
なお、本明細書で説明する技術に関連する技術が記載されている先行技術文献としては、以下の非特許文献が存在している。
Unicode、[平成25年2月5日検索]、インターネット <URL:https://ja.wikipedia.org/wiki/Unicode>
近年、ベースとなる文字のUnicodeに対してVS1,VS2,…といった識別情報を付与し、対
象となる文字の異体字を統一的に扱えるようにする異体字セレクタ(variation selector)という技術が普及し初めている(例えば、Windows 8(登録商標)が異体字をサポート)
。異体字セレクタを使用することにより、日本語文字に数多く存在する異体字、例えば、「高」、
Figure 0006209901
といった異体字を識別して表現することが可能となる。
ここで、異体字を識別するためにベースとなる文字に付与される識別情報は、4バイトのUTF16コードが割り当てられている。このため、異体字セレクタが付いた文字の領域長
は,UTF16で6〜8バイトの可変長で表現される。以後、異体字のベースとなる文字を基本字と記述して説明することとする。
異体字セレクタを扱うシステムの開発者は、一文字あたりの日本語文字をUTF16で異体
字情報なし:2〜4バイト、異体字情報あり:6〜8バイトの可変領域長として扱い、業務アプリケーションの設計を行わなければならない。ところが従来の設計では、文字数とデータ長との対応関係が固定的であるため、画面や帳票の氏名欄等は、ほとんどの場合、文字数を固定し対応するデータの大きさも文字数に対応する大きさとされていた。このため、異体字セレクタを扱うシステムの開発者は、1文字の文字コードを可変長として文字数及び領域長の両方を管理するため、設計に係る管理負担が増大してしまう。例えば、開発者は、データベースから文字を取り出す度に、対象の文字が出力しようとしている画面や帳票のフィールドに納まるか否かを、文字数をカウントしてエラーチェックを行うため、作業に係る負荷が増大してしまう。
1つの側面では、本発明は、異体字を含む文字データを固定長で扱う技術の提供を目的とする。
上記技術は、次のコンピュータが実行する文字データ処理方法の構成によって例示される。すなわち、コンピュータが、入力文字データ列に異体字情報が含まれるかを検出し、入力文字データ列より異体字情報を検出したときは、異体字情報を、異体字情報と対応づけられた基本文字および異体字情報を含み、かつ、特定のビット演算処理により当該基本文字に変換可能な、拡張表現データに変換する、処理を実行する。
上記の情報処理方法によれば、異体字を含む文字データを固定長で扱う技術が提供できる。
本実施形態の変換装置を説明する図である。 「芦(あし)」に対する異体字の一例を示す図である。 「芦(あし)」に対する異体字を複数に用いた文章の一例を示す図である。 情報処理装置のハードウェア構成を例示する図である。 本実施形態の変換装置の機能を説明する図である。 ISOで標準化された文字コード規格を示す図である。 本実施形態の変換処理により変換された固定長データの一例を示す図である。 本実施形態の変換処理により変換された固定長データの一例を示す図である。 本実施形態の変換処理を例示するフローチャートである。 本実施形態の変換処理を例示するフローチャートである。 本実施形態の変換装置をコンパイラに組み込んだケースの動作を説明する図である。 本実施形態の変換装置をコンパイラに組み込んだケースの動作を説明する図である。 本実施形態の変換装置をミドルウェアに組み込んだケースの動作を説明する図である。
以下、図面を参照して、一実施形態に係る変換装置について説明する。以下の実施形態の構成は例示であり、変換装置は実施形態の構成には限定されない。
以下、図1から図9の図面に基づいて、変換装置を説明する。
<実施例1>
図1に、本実施形態の変換装置の説明図を例示する。本実施形態の変換装置は、例えば、文字を扱う業務アプリケーションの開発を行うサーバ、コンピュータといった情報処理装置によって実現される。本実施形態の変換装置は、情報処理装置で実行されるアプリケーションおよびミドルウェアの中で異体字セレクタ(variation selector)の付いた、可変長のUnicode文字を固定長の領域長として取り扱えるようにするものである。
まず、背景となる異体字、異体字セレクタについて説明する。
ここで、異体字セレクタが付加された異体字について、図2A,2Bを参照して説明する。図2Aは、簡易慣用字体の「芦(あし)」に対する異体字の一例である。ここで、異体字とは、同じ語源の文字に二つ以上の表現(字体)が存在するものを指し、図2Aに例示するように、簡易慣用字体の「芦(あし)」に対する異体字には4つの字体が存在する。なお、簡易慣用字体の「芦(あし)」に対する文字コード(Unicode)は、“0x82a6”で表される。ここで、“0x####”は、16進数表記を表し、“#”は16進数の“0”〜“F”を表している。
異体字セレクタを使用する場合、図2Aに例示する4つの異体字を、基本字、すなわち異体字のベースとなる文字に、4バイトの識別情報を付与した「文字・文字セット」として扱うことで、それぞれの異体字を表現することが可能となる。
異体字セレクタを使用した場合、基本字の、簡易慣用字体の「芦(あし)」の文字コードは“0x82a6”であるから、それぞれの異体字は、次の「文字・文字セット」により表現することができる。
(1)図2Aの1番目 芦+VS17(0x82a6 0x000e0111)
(2)図2Aの2番目 芦+VS18(0x82a6 0x000e0112)
(3)図2Aの3番目 芦+VS19(0x82a6 0x000e0113)
(4)図2Aの4番目 芦+VS20(0x82a6 0x000e0114)
(1)から(4)の、基本字である「芦」に後付された「VS17」,「VS18」,「VS19」,「VS20」が、異体字セレクタによる識別情報の一例を表す。このように、異体字セレクタを使用した場合、“基本文字の文字コード”+“異体字セレクタ”によって、それぞれの異体字を表現することができる。
(1)の“0x000e0111”は、例えば、異体字セレクタによる識別情報であるVS17に対応する16進数のコードを表している。同様に(2)の“0x000e0112”はVS18の16進数コードを表し、(3)の“0x000e0113”はVS19の16進数コードを表し、(4)の“0xe0000114”はVS20の16進数コードを表している。異体字セレクタを使用した場合、異体字は、基本文字と識別情報との「文字・文字セット」として扱うことができるため、異体字ごとに異なる文字コードを個別に割り当てていた従来方式に対し、統一的、体系的に文字を扱うことが可能となる。
図2Aに例示の異体字セレクタと文字コードを使用することにより、例えば、図2Bに例示するように、文字を扱うアプリケーションの開発者等は、複数の異体字を組み合わせた文章を表現することができる。なお、上述した異体字セレクタには、VS17からVS256の範囲が割り当てられている。ここで、図2Aに例示の「芦(あし)」に対する異体字では、VS17からVS20といった識別情報が準備されている。しかし、例えば、「愛(あい)」といった異体字を持たない文字では、異体字を表現する識別情報は準備されていない。このため、異体字セレクタを使用した「文字・文字セット」の表現では、例えば、「愛(あい)」の文字コード“0x88a4”となる。つまり、異体字を持たない文字データの領域長は、UTF16で表現された2バイト領域長となる。
一方、図2Aに例示の「芦(あし)」の場合では、それぞれの異体字が“基本文字の文字コード”+“異体字セレクタ”によって表現される。このため、異体字を持つ「芦(あし)」では、文字データの領域長は、2バイトの“基本文字コード”と4バイトの“異体字セレクタ”を合わせ、計6バイトとなる。また、JIS 2004で定義された文字には4バイトの文字コード(例えば、
Figure 0006209901
の新字体等)を含むため、4バイト文字が異体字を持つ場合には、文字データは8バイトの領域長を有することとなる。
上述の異体字セレクタを扱う業務アプリケーションの開発者等は、文字毎に文字コードを可変長として文字数及び領域長の両方を管理するため、開発設計での管理負担が増大することとなる。
図1に例示の説明図に戻り、本実施形態の変換装置10は、既存の文字を扱う業務アプリケーションまたはミドルウェアに組み込まれる。図1に例示の説明図では、異体字セレクタの付加された可変長のUnicode文字(UTF8、UTF16)は、例えば、変換装置10を実現する情報処理装置が備える入力デバイス等を介して入力される。異体字セレクタを含む可変長の文字データは、例えば、情報処理装置が備えるOS(Operating System)を介し、既存の文字を扱う業務アプリケーションに引き渡される。既存の業務アプリケーションに組み込まれた変換装置10は、引き渡された可変長の文字データを所定長さの固定長データ、或いは、プログラム内での内部形式(X形式)に変換する。本実施形態の変換装置10により、所定長さの固定長データに変換された文字データは、従来と同様の処理形式として扱うことが可能となる。
また、本実施形態の変換装置10により、所定の処理が施された固定長の文字データは、再び変換装置10を介して可変長の文字データに変換される。変換装置10で変換された可変長の文字データは、異体字セレクタを含み、再びOSを介して、情報処理装置の備える表示デバイス等に出力される。
また、業務アプリケーションにおいて、本実施形態の変換装置10により、プログラム内での処理形式(内部形式)に変換された固定長の文字データは、固定長の状態でミドルウェア等に引き渡される。また、OSを介してミドルウェアに引き渡された可変長の文字データは、ミドルウェアに組み込まれた変換装置10に引き渡される。
ミドルウェアに組み込まれた変換装置10は、引き渡された可変長の文字データを所定長さの固定長の文字データに変換する。変換装置10を介し変換された所定長さの固定長文字データ、または、ミドルウェアに引き渡された内部形式のデータは、データ領域長を維持した状態で、所定の処理が施される。図1に例示する固定長の文字データは、例えば、ミドルウェアにおいて、再び変換装置10を介して可変長の文字データに変換される。変換装置10で変換された異体字セレクタを含む可変長の文字データは、再びOSを介して、情報処理装置が備える表示デバイス等に出力される。
本実施形態の変換装置10を備えることにより、異体字セレクタを扱うアプリケーション開発者等は、文字コードの領域長を意識せずに開発作業を行うことができる。このため、アプリケーションの開発者等は、文字コードに対する管理負担を軽減できる。その結果、文字を扱うアプリケーション開発に係る生産性が向上できる。
本実施形態の変換装置10は、例えば、図3に例示の、コンピュータとしての情報処理装置90によって実現される。図3は、情報処理装置90のハードウェアの構成の例示である。図例の情報処理装置90は、接続バスB1によって相互に接続されたCPU(Central Processing Unit)91、主記憶部92、補助記憶部93、通信部94、入力部95、出力部96を有する。
情報処理装置90は、CPU91が補助記憶部93に記憶されたプログラムを主記憶部92の作業領域に実行可能に展開し、プログラムの実行を通じて周辺機器の制御を行う。これにより、情報処理装置90は、所定の目的に合致した機能手段を実現することができる。主記憶部92及び補助記憶部93は、コンピュータである情報処理装置90が読み取り可能な記録媒体である。
CPU91は、情報処理装置90全体の制御を行う中央処理演算装置である。CPU91は、補助記憶部93に格納されたプログラムに従って処理を行う。主記憶部92は、CPU91がプログラムやデータをキャッシュしたり、作業領域を展開したりする記憶媒体である。主記憶部92は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)を含む。
補助記憶部93は、各種のプログラム及び各種のデータを読み書き自在に記録媒体に格納する。補助記憶部93は外部記憶装置とも呼ばれる。補助記憶部93には、オペレーティングシステム(Operating System :OS)、各種プログラム、各種テーブル等が格納される。OSは、通信部94を介して接続される外部装置等とのデータの受け渡しを行う通信インターフェースプログラムを含む。外部装置等には、例えば、ネットワーク等で接続された、他の情報処理装置、外部記憶装置が含まれる。なお、補助記憶部93は、例えば、ネットワーク上のコンピュータ群であるクラウドの一部であってもよい。
補助記憶部93は、例えば、EPROM(Erasable Programmable ROM)、ソリッドス
テートドライブ装置、ハードディスクドライブ(HDD、Hard Disk Drive)装置等であ
る。また、補助記憶部93としては、例えば、CDドライブ装置、DVDドライブ装置、BDドライブ装置等が提示できる。記録媒体としては、例えば、不揮発性半導体メモリ(フラッシュメモリ)を含むシリコンディスク、ハードディスク、CD、DVD、BD、USB(Universal Serial Bus)メモリ等がある。通信部94は、例えば、ネットワーク等とのインターフェースである。
入力部95は、ユーザ等からの操作指示等を受け付ける。入力部95は、入力ボタン、キーボード、ポインティングデバイス、ワイヤレスリモコン、マイクロフォン、カメラ等の入力デバイスである。入力部95から入力された情報は、接続バスB1を介してCPU91に通知される。
出力部96は、CPU91で処理されるデータや主記憶部92に記憶されるデータを出力する。出力部96は、CRT(Cathode Ray Tube)ディスプレイ、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、EL(Electroluminescence)パネル、プリンタ等の出力デバイスである。
図3に例示の情報処理装置90は、CPU91が補助記憶部93に記憶されているOS、各種プログラムや各種データを主記憶部92に読み出して実行することにより、対象プログラムの実行と共に、図1に例示の変換装置10を実現する。
〔機能構成〕
図4に、本実施形態の変換装置10の機能を説明する説明図を例示する。本実施形態の変換装置10では、可変長の文字コードから固定長の文字コードへの変換処理は、OS関数やAPI(Application Programming Interface)を呼び出す上流側に組み込まれ、可
変長から固定長への変換処理を行う。ここで、上流側とは、例えば、OSに対するミドルウェア側、アプリケーションプログラム側を言う。
図4に例示の説明図において、文字を扱う業務アプリケーションの開発者等(以下、開発者と称す)は、例えば、変換装置10を実現する情報処理装置90の備える入力部95等を介して文字入力部を作成する。情報処理装置90は、異体字セレクタを使用可能なIVS(Ideographic Variation Sequence)に対応する入出力機能を備えている。IVSでは、基本文字の文字コード(Unicode;UTF8,UTF16、UTF32)の直後に異体字セレクタを
付加し、文字の異体字を表現する。図1で説明したように、基本文字の文字コードは2から4バイトの可変長であり、異体字セレクタは4バイト長である。異体字を持たない文字も存在する場合を含め、IVSに対応する入力部95を介して入力される文字データの領域長は2から8バイトの可変長となる。
本実施形態の変換装置10は、入力された文字データを、OS関数やAPIで呼び出されるアプリケーション、或いはミドルウェアに引き渡す際に、可変長の文字データを固定長の文字データに変換して引き渡す。固定長の文字データを引き渡されたアプリケーション、またはミドルウェアでは、例えば、補助記憶部94に設けられたデータベース等を参照し、引き渡された固定長の文字データに基づき所定の処理が行われる。
一方、本実施形態の変換装置10は、アプリケーション、或いはミドルウェアで処理された文字データをOS関数やAPI等に引き渡す際に固定長の文字データを可変長の文字データに変換する。変換された文字データはOS等を介し、変換装置10を実現する情報処理装置90の備える出力部96に出力される。IVSに対応した出力部96、例えば、CRT等の表示画面上には、図2Bに例示する複数の異体字を含む文章等を表示させることができる。
(変換処理)
次に、図5Aから図5Cを参照し、本実施形態の変換装置10における、可変長の文字データを固定長の文字データに変換する変換処理について説明する。図5Aは、ISO(International Organization for Standardization)で標準化された文字コード規格:ISO/IEC 10646(UCS; Universal Coded Character Set)の例である。本実施形態の変換装置10で対象となる基本文字の文字コード(Unicode)は、図5Aに例示の文字コード規格の一部である。
図5Aに例示するように、ISO/IEC 10646 では、基本文字の1文字は、4バイト(32ビット)で表現され、上位ビットから順に、「群」,「面」,「区」,「点」の4つの「オクテット」に区分される。図5Aに例示するように、「群」の最上位ビットは、「0」に固定されるので、ISO/IEC 10646 によって表現できる文字コードは、128(群)×256(面)×256(区)×256(点)となり、21億余の文字を識別することが可能となる。なお、図5Aに例示する、4バイトの表現形式はUCS4とも称する。
文字コードのUTF32は、UCS4のサブセットである上述の1114112個およびそのサブセットであるJIS 2004で定義される文字の全てを表現する。すると、UTF32で表現された文字は
、UCS4では、“0x00000000”〜“0x0010ffff”の文字範囲で表現されることになる。つまり、UCS4では、(0面から16面迄の17面を識別する5ビット)+(各面に含まれる2バイトの文字コードである16ビット)=21ビットの情報量でUTF32を表現することが可能である。
また、日本語の漢字に対する異体字セレクタは、VS17〜VS256までの範囲で準備されて
おり、1つの基本文字に対して最大240個の異体字セレクタを持つことができる。つま
り、基本文字に対する異体字の識別は、8ビットの情報量で表現することができる。
本実施形態の変換装置10は、上述した文字コードを表現する21ビットの情報と、異体字を表現する8ビットの情報とから、例えば、4バイト(32ビット)の情報量で表現される固定長データを生成する。変換装置10で生成された4バイトの固定長データには、基本文字の文字コードと基本文字に対する異体字セレクタの情報が含まれる。
また、本実施形態の変換装置10は、4バイト(32ビット)の情報量で表現される固定長データから、文字コードを表現する21ビットの情報、及び、異体字を表現する8ビットの情報を抽出し、可変長の文字データを生成する。変換装置10で生成された可変長の文字データは、基本文字の文字コードの直後に異体字セレクタが付加された2〜8バイトのデータに変換される。
本実施形態の変換装置10では、以下の2通りの処理方式で、文字コードを表現する21ビットの情報と、異体字を表現する8ビットの情報とを含む固定長データを生成する。なお、変換装置10で生成される固定長データは、4バイト(32ビット)として説明する。また、異体字セレクタの“VSxxx(xxxは、17から256)”の“xxx”といった異体字セレクタ番号を“n”として説明する。
なお、本実施形態の変換装置10の表現形式は、例えば、Unicodeで表現された基本文
字(UTF8,UTF16,UTF32)と、この基本文字の異体字を表現する情報(例えば、異体字セレクタ)とを、所定長さ(例えば、32ビット長さ)の固定長形式で表現する拡張表現である、と言うことができる。つまり、図2A、2B等で説明したように、“基本文字の文字コード”+“異体字セレクタ”を標準表現とした場合、標準表現で表現される可変長の文字データは、基本文字が異体字を持たない形態を含め、2から8バイト長の長さとなる。本実施形態の変換装置10の表現形式では、上述したように、基本文字を21ビットの情報量で表現し、異体字が存在する場合には、さらに、異体字を表現する8ビットの情報を基本文字の情報と共に所定長さのデータに纏めることにより、固定長データとして表現する。
実施例1では、“基本文字の文字コード”+“異体字セレクタ”または、異体字セレクタの付かない“基本文字の文字コード”を含み、例えば、32ビットの固定長で表現する形式を拡張表現と呼ぶ。本実施形態の変換装置10は、入力文字データ列に異体字情報が含まれるかを検出し、入力文字データ列より異体字情報を検出したときは、異体字情報を、異体字情報と対応づけられた基本文字および異体字情報を含み、かつ、特定のビット演算処理により当該基本文字に変換可能な、拡張表現データに変換する。
(方式1)
方式1では、変換装置10は、図5Aに例示する4バイトのUTF32コード形式で表現さ
れた基本文字と、異体字セレクタ番号nから1を差し引いた値である(n−1)を24ビット右シフトさせた32ビットデータとの論理和を求める。この結果、変換装置10は、文字コードを表現する21ビットの情報と、異体字を表現する8ビットの情報とを含む固定長データを生成することができる。
図5Bに、方式1の処理により生成された4バイトの固定長データを例示する。図5Bの例では、32ビットデータの上位側8ビットの領域に異体字セレクタ番号nから1を差し引いた値である(n−1)が格納される。また、図5Bの例では、32ビットデータの
下位側21ビットの領域に、UTF32コード形式に表現した基本文字が格納される。
このように、方式1の拡張表現形式では、標準表現の可変長文字データは、上位側8ビット領域に異体字の情報、下位側21ビット領域に基本文字の情報を含む、32ビット固定長さの拡張表現に纏めて表現することができる。つまり、図2A、2Bに例示の、“基本文字の文字コード”+“異体字セレクタ”の文字データは、所定長さの拡張表現のデータ形式で扱うことが可能となる。
方式1で生成される固定長データでは、例えば、異体字セレクタを持たない文字の場合には、固定長データは、UTF32コード形式で表現された基本文字となる。また、例えば、
変換装置10は、生成された固定長データと“0x00ffffff”の4バイトデータとの論理和を求めることで、上位側8ビットを無視することができるため、容易に基本文字のUTF32コード形式の表現を得ることができる。
(方式2)
方式2では、変換装置10は、異体字セレクタ番号nから1を差し引いた値である(n−1)を下位側8ビットに格納した32ビットデータと、4バイトのUTF32コード形式に
表現した基本文字を8ビット右シフトさせたデータとの論理和を求める。この結果、変換装置10は、文字コードを表現する21ビットの情報と、異体字を表現する8ビットの情報とを含む固定長データを生成することができる。
図5Cに、方式2の処理より生成された4バイトの固定長データを例示する。図5Cの例では、32ビットデータの下位側8ビットの領域に異体字セレクタ番号nから1を差し引いた値である(n−1)が格納される。また、図5Cの例では、下位側8ビットの領域の上位側に隣接して、21ビット領域のUTF32コード形式に表現した基本文字が格納され
る。
このように、方式2の拡張表現形式では、標準表現の可変長文字データは、下位側8ビット領域に異体字の情報、下位側8ビットの領域の上位側に隣接する21ビット領域に基本文字の情報を含む、32ビット固定長さの拡張表現に纏めて表現することができる。方式1と同様に、図2A、2Bに例示の、“基本文字の文字コード”+“異体字セレクタ”の文字データは、所定長さの拡張表現のデータ形式で扱うことが可能となる。
方式2で生成される固定長データでは、例えば、図4に例示の、IVSに対応する入力部95を介して変換装置10に引き渡された文字のデータ形式を維持することができる。つまり、図5Cに例示の固定長データでは、文字コードを表現する21ビット領域に隣接して下位側8ビット領域に異体字セレクタ情報が格納されるため、基本文字の直後に異体字セレクタを付加するデータ形態を維持することができる。このため、例えば、異体字を含む文字列等の並べ替えを行う際の大小比較が容易であり、UTF32のデータ形式を使用し
た並べ替えと同一の結果を得ることができる。
なお、本実施形態の変換装置10では、異体字セレクタ番号の番号値(n)から“1”を差し引いた値により、異体字セレクタを識別する8ビットの情報を表現している。本実施形態の変換装置10は、このような処理を行うことにより、VS17〜VS256までの範囲で
準備された異体字セレクタを“0x10”〜“0xff”の8ビット情報として扱うことができる。
〔処理フロー〕
(可変長データ→固定長データ)
図6に例示のフローチャートを参照し、本実施形態の変換装置10の処理を説明する。図6は、可変長データから固定長データに変換する処理のフローチャートの例示である。図6に例示の処理は、例えば、主記憶部92に実行可能に展開されたコンピュータプログラムにより実行される。図6に例示のフローチャートにおいて、S12−S23の処理は、入力された文字の読み込みが終了するまでの間、繰り返して実行される。
図6に例示のフローチャートにおいて、可変長データから固定長データへの処理の開始は、例えば、外部からミドルウェア、或いは、アプリケーションプログラムへの情報の入力を例示できる。ここで、外部からの入力とは、例えば、キーボード入力、表示画面からの文字情報の入力、OCR(Optical Code Reader)による入力、通信モジュール等を介
した他の装置からのデータ受信、可搬型記録媒体からのデータ読み取り等である。
変換装置10は、入力データをUTF32へ変換し、入力作業用バッファへ格納する(S1
1)。入力データは、例えば、図4で説明したように、IVSに対応する入力部94を介して入力される。このため、入力データは、基本文字の文字コード(Unicode)の直後に
異体字セレクタが付加された可変長データとして、本実施形態の変換装置10に引き渡される。なお、入力作業用バッファは、例えば、主記憶部92の所定の記憶領域に設けられる。また、S12−S23の処理は、S11の処理で入力作業用バッファに格納された入力データを対象に実行される。
S12−S13では、変換装置10は、入力作業用バッファから1文字目を読み込み、読み込んだ文字を文字加工バッファAに格納する(S12)。文字加工バッファAは、例えば、主記憶部92の所定の記憶領域に設けられる。そして、変換装置10は、入力作業用バッファからの文字読み込み終了であるかを判定する(S13)。文字読み込み終了の判定は、例えば、データの終わりを示すEOD(End Of Data)等により判定してもよい
変換装置10は、入力作業用バッファからの文字読み込み終了の場合には(S13、YES)、図6に例示する処理を終了する。一方、変換装置10は、文字の読み込みが終了でない場合には(S13、NO)、S12の処理で読み込んだ1文字目が基本文字か否かを判定する(S14)。変換装置10は、S12の処理で読み込んだ1文字目が基本文字でない場合(S14、NO)、S23に移行し、異常系処理を実行する。
既に説明したように、変換装置10に引き渡される入力データは、基本文字の文字コード(Unicode)の直後に異体字セレクタが付加された可変長データである。従って、変換
装置10を含む情報処理装置90が正常な状態では、1文字目は基本文字の文字コードであり、2文字目は基本文字に対する異体字セレクタとなる。このため、本実施形態の変換装置10は、S14の処理で、1文字目に読み込まれた文字が基本文字でない場合は、変換装置10を含む情報処理装置90の異常と判断し、S23の異常系処理を実行する。
一方、変換装置10は、S12の処理で読み込んだ1文字目が基本文字の場合には(S14、YES)、入力作業用バッファから2文字目を読み込み、読み込んだ2文字目を文字加工バッファBに格納する(S15)。文字加工バッファBは、例えば、主記憶部92の所定の記憶領域に設けられる。そして、変換装置10は、再び、入力作業用バッファからの文字読み込み終了であるかを判定する(S16)。
変換装置10は、文字の読み込み終了の場合には(S16、YES)、S18−S22の異体字セレクタの変換処理を行わず、S17に移行し、文字加工バッファAから固定長データを出力する。
一方、変換装置10は、文字の読み込み終了でない場合には(S16、NO)、S18−S21の異体字セレクタの変換処理を実行する。S18では、変換装置10は、S15で読み込んだ2文字目が異体字セレクタか否かを判定する。例えば、日本語の漢字に対する異体字セレクタは、VS17〜VS256までの範囲で準備されている。例えば、異体字セレク
タ(VS)は、Unicodeで表現した場合、“U+E0100”が“VS17”に対応し、“U+E01EF”が
“VS256”に対応する。変換装置10は、例えば、S15で読み込んだ2文字目が“U+E0100”〜“U+E01EF”の範囲で表現されているか否かを判定すればよい。情報処理装置90
のCPU91等は、検出する手段の一例として、S18の処理を実行する。
S18の判定の結果、S15で読み込んだ2文字目が異体字セレクタでないと判定された場合には(S18、NO)、変換装置10は、文字加工バッファAから固定長の文字データを読み出してS15に移行する(S22)。また、S22の処理では、変換装置10は、文字加工バッファBに格納された2文字目のデータを文字加工バッファAへ複写する。S22の複写処理では、変換装置10はさらに、文字加工バッファBを初期化してもよい。
一方、S18の判定の結果、S15で読み込んだ2文字目が異体字セレクタであると判定された場合には(S18、YES)、変換装置10は、S19に移行し、異体字セレクタ(VS)を異体字セレクタ番号(VSn)に変換する。例えば、異体字セレクタが“VS17”
の場合では、異体字セレクタ番号“VSn”は、“17”である。S19では、変換装置1
0は、図5B等で説明したように、異体字セレクタ番号である“VSn”から“VSn−1
”を求め16進法の8ビット情報に変換する。異体字セレクタ番号“VSn”が“17”の
場合、“VSn−1”は“16”となり、16進法の8ビット情報では“0x10”である。また、異体字セレクタ番号“VSn”が“256”の場合、“VSn−1”は“255
”となり、16進法の8ビット情報では“0xff”となる。このように、S19の処理では、“VSn−1”は、“16”〜“255”の範囲の値として出力される。この処理は、異体字セレクタ番号を少ないビット数で表現するためのビットシフト処理の例である。
そして、S20の処理では、変換装置10は、S12の処理で読み込んだ1文字目のデータと、S19の処理で変換された異体字セレクタ番号(VSn)を固定長データに合成す
る。例えば、(方式1)では、変換装置10は、S19の処理で変換した“VSn−1”を24ビット右シフトさせて32ビットデータとし、S12で文字加工バッファAに格納された4バイトの基本文字データとの論理和を求めればよい。論理和を求める処理は、例えば、文字加工バッファAで実行される。この結果、文字加工バッファAには、S12の処理で読み込んだ1文字目のデータと、S19の処理で変換された異体字セレクタ番号(VSn)とが合成された固定長データが生成される。
また、(方式2)では、例えば、変換装置10は、S12で文字加工バッファAに格納された4バイトの基本文字データを8ビット右シフトさせる。そして、変換装置10は、8ビット右シフトさせた基本文字データと、S19の処理で変換した“VSn−1”を下位側8ビットに格納した32ビットデータとの論理和を求めればよい。論理和を求める処理は、例えば、文字加工バッファAで実行される。この結果、(方式1)と同様に、文字加工バッファAには、S12の処理で読み込んだ1文字目のデータと、S19の処理で変換された異体字セレクタ番号(VSn)とが合成された固定長データが生成される。
S21では、変換装置10は、文字加工バッファAから、S19の処理で生成された固定長データを出力する。変換装置10は、S12に移行し、入力作業用バッファに格納された文字データが終了するまで、S12−S23の処理を繰り返す。
なお、図6に例示の処理では、変換装置10は、例えば、文字数カウンタ等を設けると
してもよい。そして、文字数カウンタは文字数を計数する。文字数カウンタは、入力部94の処理に応じて適宜、初期化及び加算を行う。
ここで、変換装置10で実行されるS11の処理は、文字の識別コードと前記文字の異体字を識別する異体字識別コードとを含む、前記文字に応じてコード長の異なる可変長文字コードの文字データを取得するステップの一例である。また、情報処理装置90のCPU91等は、文字の識別コードと前記文字の異体字を識別する異体字識別コードとを含む、前記文字に応じてコード長の異なる可変長文字コードの文字データを取得する手段の一例として、S11の処理を実行する。
また、変換装置10で実行されるS19−S20の処理は、前記異体字情報を、前記異体字情報と対応づけられた基本文字および前記異体字情報を含み、かつ、特定のビット演算処理により当該基本文字に変換可能な、拡張表現データに変換するステップの一例である。また、情報処理装置90のCPU91等は、前記異体字情報を、前記異体字情報と対応づけられた基本文字および前記異体字情報を含み、かつ、特定のビット演算処理により当該基本文字に変換可能な、拡張表現データに変換する手段の一例として、S19−S20の処理を実行する。
また、変換装置10で実行されるS21の処理は、引き渡すステップの一例である。また、情報処理装置90のCPU91等は、引き渡す手段の一例として、S21の処理を実行する。
(固定長データ→可変長データ)
図7に例示のフローチャートを参照し、本実施形態の変換装置10の固定長から可変長データに変換する処理を説明する。図7は、変換処理のフローチャートの例示である。図7に例示の処理は、例えば、主記憶部92に実行可能に展開されたコンピュータプログラムにより実行される。図7に例示のフローチャートにおいて、S31−S39の処理は、固定長データの文字の読み込みが終了するまでの間、繰り返して実行される。
固定長データには、例えば、図6で説明したように、基本文字を表現する21ビットの情報、及び、異体字セレクタを表現する8ビットの情報が含まれる。図7に例示の、固定長から可変長データに変換する処理では、変換装置10は、上述の情報を固定長データから抽出し、抽出した情報に対応する可変長データを生成し、出力する。
図7に例示のフローチャートにおいて、固定長データから可変長データへの処理の開始は、例えば、ミドルウェア、或いは、アプリケーションプログラムから外部への情報の出力を例示できる。ここで、外部への出力とは、例えば、表示デバイス、プリンタ等への出力、通信モジュールを介した他の装置への情報の送信等である。
変換装置10は、固定長データの1文字目を読み込み、文字加工バッファWへ格納する(S31)。なお、S31の処理により、文字加工バッファWに格納された1文字目の固定長データには、基本文字の文字コード及び異体字セレクタが含まれている。文字加工バッファWは、例えば、主記憶部92の所定の記憶領域に設けられる。なお、以下の説明において、各バッファは、主記憶部92の所定の記憶領域に設けられるものとして説明する。また、変換装置10で実行されるS31の処理は、拡張表現データを取得するステップの一例である。また、情報処理装置90のCPU91等は、拡張表現データを取得する手段の一例として、S31の処理を実行する。
S32では、変換装置10は、文字の読み込み終了であるかを判定し、文字読み込み終了の場合には(S32、YES)、出力作業用バッファのデータをUTF8またはUTF16へ変
換して、出力バッファへ格納する(S33)。変換装置10は、S33の処理実行後に、図7に例示する処理を終了する。
一方、変換装置10は、文字読み込み終了でない場合には(S32、NO)、文字加工バッファWに格納された固定長データから、可変長データの1文字目としての基本文字を抽出する(S34)。
変換装置10は、例えば、文字加工バッファWに格納されたデータと“0x00ffffff”で表される32ビットデータとの論理積(AND)を求め、得られた処理結果を文
字加工バッファAに格納する。このような処理により、変換装置10は、例えば、(方式1)で変換された固定長データの中から基本文字の文字データを抽出することができる。
また、変換装置10は、例えば、文字加工バッファWに格納されたデータと“0xffffff00”で表される32ビットデータとの論理積(AND)を求め、得られた処理結
果を文字加工バッファAに格納する。そして、変換装置10は、文字加工バッファAに格納されたデータを8ビット左シフトさせる。このような処理により、変換装置10は、例えば、(方式2)で変換された固定長データの中から基本文字の文字データを抽出することができる。
次に、変換装置10は、文字加工バッファWに格納された固定長データから、基本文字に付加する異体字セレクタに係るデータを抽出する(S35)。ここで、異体字セレクタに係るデータは、例えば、異体字セレクタ番号である“VSn”から“1”を差し引いた“
VSn−1”である。
変換装置10は、例えば、文字加工バッファWに格納されたデータと“0xff000000”で表される32ビットデータとの論理積(AND)を求め、得られた処理結果をバッファVSnに格納する。この処理の結果により、変換装置10は、例えば、(方式1)で変換された固定長データの中から異体字セレクタに係るデータを抽出することができる。
また、変換装置10は、例えば、文字加工バッファWに格納されたデータと“0x000000ff”で表される32ビットデータとの論理積(AND)を求め、得られた処理結果をバッファVSnに格納する。この処理の結果により、変換装置10は、例えば、(方式2)で変換された固定長データの中から異体字セレクタに係るデータを抽出することができる。
S36では、変換装置10は、S34の処理で抽出された基本文字(可変長データの1文字目)の32ビットデータ(固定長)を文字加工バッファAから出力作業用バッファへ出力する。変換装置10は、S36の処理実行後、S37に移行し、所定の条件を満たす場合には(S37、YES)、S38−S39の異体字セレクタへの変換処理を実行する。
S37では、変換装置10は、異体字セレクタの有無を判定する。例えば、異体字セレクタが存在する場合には、例えば、異体字セレクタ番号である“VSn”から“1”を差し
引いた“VSn−1”がバッファVSnに格納される。ここで、“VSn−1”は、図6で説明したように、16から255の範囲(“0x10”〜“0xff”)の値となる。従って、S37では、変換装置10は、S35の処理でバッファVSnに格納されたデータが“0x0”の場合に、異体字セレクタを持たないと判定できる。また、変換装置10は、S35の処理でバッファVSnに格納されたデータが、“0x0”以外の場合に、異体字セレクタを持つと判定してもよい。
変換装置10は、S37の判定の結果、異体字セレクタが無い場合には(S37、NO)、S31に移行し、S31−S39の処理を繰り返す。一方、変換装置10は、S37の判定の結果、異体字セレクタが有る場合には(S37、YES)、バッファVSnに格納された値に基づいて、異体字セレクタ番号(VSn)を文字に変換する(S38)。変換された異体字セレクタ番号(VSn)は、文字加工バッファBに格納される。
S38の処理では、変換装置10は、例えば、バッファVSnのデータを24ビット左シフトさせて“1”を加え、文字加工バッファBに格納する。このような処理により、変換装置10は、例えば、(方式1)で変換された固定長データの中から異体字セレクタ番号(VSn)を抽出することができる。
また、変換装置10は、例えば、バッファVSnのデータに“1”を加え、文字加工バッファBに格納する。このような処理により、変換装置10は、例えば、(方式2)で変換された固定長データの中から異体字セレクタ番号(VSn)を抽出することができる。
変換装置10は、さらに、文字加工バッファBに抽出された異体字セレクタ番号(VSn
)を文字データに変換し、再び、文字加工バッファBに格納する。この結果、文字加工バッファBには、例えば、“U+E0100”といった異体字セレクタを表現する文字データが格納される。“U+E0100”は、異体字セレクタ番号(VS17)に対応した文字コードである。
S39では、変換装置10は、文字加工バッファBに格納された異体字セレクタを表現する文字データを出力作業用バッファに出力し、S31に移行する。変換装置10は、再び、S31−S39の処理を繰り返すことにより、固定長データに含まれる基本文字及び異体字セレクタに係るデータを、“基本文字+異体字セレクタ”で表現される可変長のデータに変換することができる。出力作業用バッファに出力された文字データは、S32の文字読み込み終了判定を条件として出力バッファに格納される。
なお、図6に例示の処理では、変換装置10は、例えば、文字数カウンタ等を設けるとしてもよい。なお、図6に例示の処理では、変換装置10は、例えば、文字数カウンタ等を設けるとしてもよい。そして、文字数カウンタは文字数を計数する。文字数カウンタは、入力部94の処理に応じて適宜、初期化及び加算を行う。
ここで、変換装置10で実行されるS34−S38の処理は、標準表現の文字データ列に変換するステップの一例である。また、情報処理装置90のCPU91等は、標準表現の文字データ列に変換する手段の一例として、S34−S38の処理を実行する。
すなわち、変換装置10が生成する固定長文字コードは、文字の識別コードと文字の異体字識別コードとを含む元の可変長文字コードを復元可能な固定長文字コードである。変換装置10は、可変長文字コードから、可変長文字コードを復元可能な固定長文字コードに、文字データを変換する。このような処理により、変換装置10は、異字体を含む可変長文字コードの文字データを固定長文字コードで扱うことができる。
〔動作例〕
(コンパイラ)
図8Aに、本実施形態の変換装置10をコンパイラに組み込んだケースの説明図を例示する。図8Aに例示の説明図において、ソースプログラムファイル80aは、例えば、UTF8、UTF16で表現された文字コードを含むプログラムである。コンパイラ80bは、本実施形態の変換装置10を含む。コンパイラ80bは、ソースプログラムファイル80aのソースコードを変換し、コンピュータが実行可能なオブジェクトコードで記述されたアプリケーション(目的プログラム)80cを生成する。目的プログラム80cは、例えば、情報処理装置90で実行可能なアプリケーションである。
図8Aのソースプログラムファイル80aでは、当該プログラムで扱うデータ宣言が行われ、初期値設定やファイル名等の環境変数、ファイルレコード等の定義付けが行われる。データ宣言には、例えば、UTF8,UTF16で表現された文字列“NNNN”が含まれる。また、ソースプログラムファイル80aでは、データの入出力に係る各種処理、データ加工に係る処理、他のソフトウェアとの連携(例えば、データ入出力)等が記述される。データの入出力に係る処理には、例えば、“ACCEPT IN-NAME ”等で記述された外部データ入力処理等が含まれる。
図8Aに例示のコンパイラ80bは、コンパイル処理の実行時に、ソースプログラムファイル80aのファイル定義、ファイルレコード定義等に沿って、データ領域を確保する。なお、確保されるデータ領域は、固定長のデータ領域である。また、コンパイラ80bは、ソースプログラムファイル80aの各種処理に係るソースコードに沿って、コンピュータが実行可能なオブジェクトコードへの翻訳処理を実行する。翻訳処理では、各種処理に係るソースコードに沿って、固定長データ領域の確保及び、固定長データ領域を前提とした翻訳処理が実行される。
コンパイラ80bに組み込まれた変換装置10では、コンパイル処理の実行時に以下の文字データに係る変換処理を実行する。例えば、コンパイラ80bの変換装置10は、ソースプログラムファイル80aのデータ宣言等に含まれる、UTF8、UTF16等で表現された、可変長の文字列“NNNN”等をUTF32に変換し、入力作業用バッファに格納する(図6、S11)。そして、変換装置10は、入力用作業バッファに格納されたい文字目の読み込み処理を行い、文字加工バッファAに格納する(図6、S12)。変換装置10は、所定の条件を満たす場合(図6、S13,NO、S14,YES)には、2文字目を読み込み、文字加工バッファBに格納する(図6、S16)。そして、変換装置10は、2文字目が異体字セレクタ(VS)でない場合、文字加工バッファAに格納した1文字目を目的プログラム80cに出力する。そして、変換装置10は、文字加工バッファBを文字加工バッファAに複写し、文字加工バッファBの初期化処理を行う(図6、S18,NO−S22)。
また、コンパイル処理の実行時において変換装置10は、2文字目が異体字セレクタ(VS)の場合、Unicodeで表現された異体字セレクタ(VS)を異体字セレクタ番号(VSn)に変換する(図6、S18,YES−S19)。そして、変換装置10は、文字加工バッファAに格納された1文字目の基本文字と、異体字セレクタ番号(VSn)とを固定長データに合成し、合成した固定長データを目的プログラム80cに出力する(図6、S20−S21)。
また、図8Aに例示のコンパイラ80bは、例えば、“ACCEPT IN-NAME ”といった外部データ入力処理に係るソースコードに応じて、当コンパイラ処理をRUNTIMEシステムと
して呼び出すための呼び出し関数を関連付ける。
このようなコンパイラ80bの処理により、目的プログラム80cには、ソースプログラムファイル80aで宣言された“NNNN”といった文字列が、固定長データとして初期値として設定される。また、目的プログラム80cには、ソースプログラムファイル80aのファイル定義等に応じた変数領域,固定長データ領域が設定される。さらに、目的プログラムの実行領域(ビジネスブロック)には、固定長データ領域とそれを前提とした処理が組み込まれる。
図8Bは、図8Aの目的プログラム80cの実行を説明する図である。図8Bにおいて、コンパイラ運用システム80dは、“ACCEPT IN-NAME ”で呼び出されたRUNTIMEシステムである。図8Bに例示の目的プログラム80cは、例えば、情報処理装置90で実行される。
図8Bに例示の説明図では、例えば、情報処理装置90の備える入力部95を介して、UTF8、UTF16で表現された文字データ入力が行われる。目的プログラム80cは、入力さ
れた文字データを、外部データ入力処理により受け付ける。目的プログラム80cの外部データ入力処理の実行により、“ACCEPT IN-NAME ”に関連付けられた呼び出し関数等が呼び出され、コンパイラ運用システム80dが起動される。起動されたコンパイラ運用システム80dでは、図8Aで説明したコンパイラ80cの処理が実行される。
コンパイラ80cに組み込まれた変換装置10は、UTF8、UTF16等で表現された、可変
長の文字データをUTF32に変換し、入力作業用バッファに格納する(図6、S11)。そ
して、変換装置10は、図6のS12−S23の処理を実行することにより、入力部95を介して入力された可変長の文字データを固定長データに変換する。
目的プログラム80cは、変換された固定長データに基づいて、所定のデータ加工処理、他ソフトウェアとの連携処理を実行する。例えば、目的プログラム80cの実行により、情報処理装置90は、固定長データでファイルへの書き込みを行い、固定長データが書き込まれたファイルを補助記憶部93に格納する。また、目的プログラム80cを実行する情報処理装置90は、他ソフトウェアとの連携処理では、固定長データ領域を前提とした入出力処理を実行する。
データ加工処理の結果、例えば、情報処理装置90が備える出力部96へデータを出力する場合には、コンパイラ80bは、固定長データを可変長データに変換し、目的プログラム80cに出力する。コンパイラ80bに組み込まれた変換装置10では、以下の文字データに係る変換処理を実行する。
例えば、コンパイラ80bの変換装置10は、固定長データの1文字目を読み込み、文字加工バッファWへ格納する(図7、S31)。そして、変換装置10は、所定の条件を満たす場合、文字加工バッファWに格納された固定長データから、可変長データの1文字目としての基本文字を抽出し、抽出した基本文字を文字加工バッファAに格納する(図7、S34)。また、変換装置10は、文字加工バッファWに格納された固定長データから、基本文字に付加する異体字セレクタに係るデータを抽出し、バッファVSnに格納する(図7、S35)。
そして、変換装置10は、1文字目の固定長データ(USC4)をバッファVSnから出力作業用バッファに出力し(図7、S36)、異体字セレクタが有る場合には、バッファVSnに格納された異体字セレクタ番号(VSn)を文字データに変換する。変換された文字
データは文字加工バッファBに格納される(図7、S38)。変換装置10は、文字加工バッファBに格納された異体字セレクタの文字データ(USC4)を出力作業用バッファに出力する(図7、S39)。
出力作業用バッファに出力された1文字目の基本文字データ、及び、異体字セレクタを表現する文字データは、固定長データの文字読み込み終了を条件として、UTF8またはUTF16に変換されて出力バッファに格納される(図7、S33)。出力バッファに格納されたUTF8またはUTF16に変換された文字データは、目的プログラム80cのデータ出力処理に出力される。
目的プログラム80cのデータ出力処理では、UTF8またはUTF16に変換された可変長の
文字データは、出力部96の表示画面上に出力される。ここで、基本文字が異体字セレクタを持つ場合では、基本文字の直後に異体字セレクタを付加して、文字データが出力される。
(ミドルウェア)
図9に、本実施形態の変換装置10をミドルウェアに組み込んだケースの説明図を例示する。図9のケースは、例えば、文字を扱う業務アプリケーションの開発者等が情報処理装置90のミドルウェアに組み込まれた変換装置10の変換機能を呼び出して使用するケースである。
図9のアプリケーション80eは、例えば、開発者等が設計したアプリケーションプログラムである。開発者等は、例えば、情報処理装置90の備える入力部95を介して、UTF8、UTF16で表現された文字データの入力を行う。アプリケーション80eでは、外部データ入力処理にミドルウェアに組み込まれた変換装置10が、変換器関数として関連付けられる。図9の例示の、外部データ入力処理では、“変換器関数(&buffer, &fixed_buffer);”により、ミドルウェアに組み込まれた変換装置10が、変換器関数として関連付けられる。
アプリケーション80eにおいて、外部データ入力処理の要求により呼び出された変換装置10は、UTF8、UTF16等で表現された、可変長の文字データをUTF32に変換し、入力作業用バッファに格納する(図6、S11)。そして、変換装置10は、図6のS12−S23の処理を実行することにより、入力部95を介して入力された可変長の文字データを固定長データに変換する。変換された固定長データは、アプリケーション80eの外部データ入力処理に出力される。
アプリケーション80eでは、例えば、データ加工処理や他ソフトウェアとの連携処理は、固定長データ領域を前提として設計される。なお、他ソフトウェアとの連携処理において、入出力の可変長のデータを固定長データに変換する場合には、開発者等は、例えば、図8Bに例示のコンパイラ運用システム80dを呼び出し関数として連携処理に関連付けるとしてもよい。
アプリケーション80eにおいて、固定長データで処理された文字データを出力部96に出力する場合では、ミドルウェアに組み込まれた変換装置10は、外部データ出力処理に変換器関数として関連付けられる。図9の例示の、外部データ出力処理では、“変換器関数(&fixed_buffer, &customer_name);”により、ミドルウェアに組み込まれた変換装置10が、変換器関数として関連付けられる。
アプリケーション80eにおいて、外部データ出力処理の要求により呼び出された変換装置10は、固定長データの1文字目を読み込み、文字加工バッファWへ格納する(図7、S31)。そして、変換装置10は、図7のS32−S39の処理を実行することにより、固定長データとして処理された文字データを可変長の文字データに変換する。変換された可変長データは、アプリケーション80eの外部データ出力処理に出力される。
アプリケーション80eでは、変換された可変長の文字データは、所定の関数により、出力部96に出力される。図9に例示の外部データ処理では、“printf(”cutomer name
%s \n”, &customer_name);”等の関数により、変換された可変長の文字データが出力部96に出力される。
以上、説明したように、本実施形態の変換装置10は、基本文字及び異体字セレクタが付加された2〜8バイトの文字データを、基本文字の文字コード及び異体字セレクタに係るデータを含む固定長のデータに変換することができる。このため、n文字の日本語を扱うプログラム,DB定義,帳票定義等では、変換後の固定長データを使用した内部処理が可能となる。この結果、本実施形態の変換装置10の機能をミドルウェア,コンパイラ等に組み込むことにより、固定長日本語文字列を前提にして設計していた業務システム,業務アプリケーションは、大きな見直しをすることなくリビルドすることが可能となる。
なお、図6のS11では、入力データをUTF32へ変換し、入力作業用バッファへ格納す
るとしたが、UTF8、UTF16で表現された基本文字、及び、該基本文字に異体字セレクタが
付加された形式で格納するとしてもよい。
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。
《その他》
以上の実施形態は、さらに以下の付記と呼ぶ態様を含む。以下の各付記に含まれる構成要素は、他の付記に含まれる構成と組み合わせることができる。
(付記1)
コンピュータが、
入力文字データ列に異体字情報が含まれるかを検出し、
前記入力文字データ列より異体字情報を検出したときは、前記異体字情報を、前記異体字情報と対応づけられた基本文字および前記異体字情報を含み、かつ、特定のビット演算処理により当該基本文字に変換可能な、拡張表現データに変換する、
処理を実行することを特徴とする文字データ処理方法。
(付記2)
拡張表現データを処理する処理部に前記変換された拡張表現データを引き渡す、
処理をさらに実行することを特徴とする、付記1に記載の文字データ処理方法。
(付記3)
前記処理部から処理された拡張表現データを取得し、
前記取得した拡張表現データを、異体字情報と、該異体字情報に対応付けられた基本文字が含まれる標準表現の文字データ列に変換する、
処理をさらに実行することを特徴とする付記2に記載の文字データ処理方法。
(付記4)
前記拡張表現データは、前記異体字情報に含まれる異体字識別コード値を所定ビットシ
フトした値を含む、付記1または2に記載の文字データ処理方法。
(付記5)
コンピュータが、
文字の識別コードと前記文字の異体字を識別する異体字識別コードとを含む、前記文字に応じてコード長の異なる可変長文字コードの文字データを取得するステップと、
前記文字の識別コードと前記文字の異体字識別コードとを基に、前記識別コードと前記異体字識別コードとを復元可能な固定長文字コードを生成し、前記可変長文字コードの文字データを前記固定長コードの文字データに変換するステップと、
を実行する情報処理方法。
(付記6)
コンピュータに、
入力文字データ列に異体字情報が含まれるかを検出させ、
前記入力文字データ列より異体字情報を検出したときは、前記異体字情報を、前記異体字情報と対応づけられた基本文字および前記異体字情報を含み、かつ、特定のビット演算処理により当該基本文字に変換可能な、拡張表現データに変換させるためのプログラム。
(付記7)
拡張表現データを処理する処理部に前記変換された拡張表現データを引き渡す、
処理をさらに実行させることを特徴とする付記6に記載のプログラム。
(付記8)
前記処理部から処理された拡張表現データを取得し、
前記取得した拡張表現データを、異体字情報と、該異体字情報に対応付けられた基本文字が含まれる標準表現の文字データ列に変換する、
処理をさらに実行させることを特徴とする付記7に記載のプログラム。
(付記9)
前記拡張表現データは、前記異体字情報に含まれる異体字識別コード値を所定ビットシフトした値を含む、付記6または7に記載のプログラム。
(付記10)
入力文字データ列に異体字情報が含まれるかを検出する手段と、
前記入力文字データ列より異体字情報を検出したときは、前記異体字情報を、前記異体字情報と対応づけられた基本文字および前記異体字情報を含み、かつ、特定のビット演算処理により当該基本文字に変換可能な、拡張表現データに変換する手段と、
拡張表現データを処理する処理部に前記変換された拡張表現データを引き渡す手段と、
前記処理部から処理された拡張表現データを取得する手段と、
前記取得した拡張表現データを、異体字情報と、該異体字情報に対応付けられた基本文字が含まれる標準表現の文字データ列に変換する手段と、
を備える情報処理装置。
(付記11)
前記拡張表現データは、前記異体字情報に含まれる異体字識別コード値を所定ビットシフトした値を含む、付記10に記載の情報処理装置。
10 変換装置
90 情報処理装置
91 CPU
92 主記憶部
93 補助記憶部
94 通信部
95 入力部
96 出力部

Claims (6)

  1. コンピュータが、
    入力文字データ列に、基本文字の文字コードと前記基本文字の異体字を識別する異体字識別コードとを含む、文字に応じてコード長の異なる可変長文字コードの文字データが含まれるかを検出し、
    前記入力文字データ列より前記可変長文字コードの文字データを検出したときは、前記可変長文字コードの文字データを、前記異体字識別コードと対応づけられた基本文字を特定する第1のビット列および前記異体字識別コードを特定する第2のビット列を含み、かつ、前記それぞれのビット列を分離するビット演算処理により前記第1のビット列と第2のビット列を分離して可変長文字コードの文字データに変換可能な、所定長さの固定長文字コードの文字データに変換する、
    処理を実行することを特徴とする文字データ処理方法。
  2. 固定長文字コードの文字データを処理する処理部に前記変換された固定長文字コードの文字データを引き渡す、
    処理をさらに実行することを特徴とする、請求項1に記載の文字データ処理方法。
  3. 前記処理部から処理された固定長文字コードの文字データを取得し、
    前記取得した固定長文字コードの文字データを、前記異体字識別コードと、該異体字識別コードに対応付けられた基本文字が含まれる可変長文字コードの文字データ列に変換する、
    処理をさらに実行することを特徴とする請求項2に記載の文字データ処理方法。
  4. 前記固定長文字コードの文字データは、前記可変長文字コードに含まれる異体字識別コード値を所定ビットシフトした値を含む、請求項1または2に記載の文字データ処理方法。
  5. コンピュータに、
    入力文字データ列に、基本文字の文字コードと前記基本文字の異体字を識別する異体字識別コードとを含む、文字に応じてコード長の異なる可変長文字コードの文字データが含
    まれるかを検出させ、
    前記入力文字データ列より前記可変長文字コードの文字データを検出したときは、前記可変長文字コードの文字データを、前記異体字識別コードと対応づけられた基本文字を特定する第1のビット列および前記異体字識別コードを特定する第2のビット列を含み、かつ、前記それぞれのビット列を分離するビット演算処理により前記第1のビット列と第2のビット列を分離して可変長文字コードの文字データに変換可能な、所定長さの固定長文字コードの文字データに変換させるためのプログラム。
  6. 入力文字データ列に、基本文字の文字コードと前記基本文字の異体字を識別する異体字識別コードとを含む、文字に応じてコード長の異なる可変長文字コードの文字データが含まれるかを検出する手段と、
    前記入力文字データ列より前記可変長文字コードの文字データを検出したときは、前記可変長文字コードの文字データを、前記異体字識別コードと対応づけられた基本文字を特定する第1のビット列および前記異体字識別コードを特定する第2のビット列を含み、かつ、前記それぞれのビット列を分離するビット演算処理により前記第1のビット列と第2のビット列を分離して可変長文字コードの文字データに変換可能な、所定長さの固定長文字コードの文字データに変換する手段と、
    固定長文字コードの文字データを処理する処理部に前記変換された固定長文字コードの文字データを引き渡す手段と、
    前記処理部から処理された固定長文字コードの文字データを取得する手段と、
    前記取得した固定長文字コードの文字データを、前記異体字識別コードと、該異体字識別コードに対応付けられた基本文字が含まれる可変長文字コードの文字データ列に変換する手段と、
    を備える情報処理装置。
JP2013174800A 2013-08-26 2013-08-26 文字データ処理方法、プログラム及び情報処理装置 Active JP6209901B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013174800A JP6209901B2 (ja) 2013-08-26 2013-08-26 文字データ処理方法、プログラム及び情報処理装置
US14/467,401 US9448975B2 (en) 2013-08-26 2014-08-25 Character data processing method, information processing method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013174800A JP6209901B2 (ja) 2013-08-26 2013-08-26 文字データ処理方法、プログラム及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2015043164A JP2015043164A (ja) 2015-03-05
JP6209901B2 true JP6209901B2 (ja) 2017-10-11

Family

ID=52480440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013174800A Active JP6209901B2 (ja) 2013-08-26 2013-08-26 文字データ処理方法、プログラム及び情報処理装置

Country Status (2)

Country Link
US (1) US9448975B2 (ja)
JP (1) JP6209901B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6245028B2 (ja) * 2014-03-27 2017-12-13 富士通株式会社 実行制御方法、実行制御プログラムおよび実行制御装置
JP2020087313A (ja) * 2018-11-30 2020-06-04 株式会社リコー 情報処理装置、情報処理システム及び情報処理プログラム
CN112364642B (zh) * 2019-07-23 2024-04-02 马上消费金融股份有限公司 一种文本处理方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2755146B2 (ja) 1993-12-27 1998-05-20 日本電気株式会社 文書データ処理装置
JPH09134348A (ja) * 1995-11-13 1997-05-20 Brother Ind Ltd 文書データ処理装置
KR100399495B1 (ko) * 2000-04-26 2003-09-26 인터내셔널 비지네스 머신즈 코포레이션 소스 스트링의 타겟 스트링으로의 변환 방법, 이의 컴퓨터시스템 및 프로그램 제품
US20020052902A1 (en) * 2000-10-30 2002-05-02 International Business Machines Corporation Method to convert unicode text to mixed codepages
JP4202857B2 (ja) 2003-01-30 2008-12-24 富士通株式会社 プログラム、文字入力編集方法、装置及び記録媒体
JP2004252583A (ja) * 2003-02-18 2004-09-09 Morisawa:Kk データ作成装置、文字コード構造及び記録媒体
JP2009042980A (ja) * 2007-08-08 2009-02-26 Fit:Kk 文字コード処理装置
JP2009251803A (ja) * 2008-04-03 2009-10-29 Canon Inc 情報処理装置、データ処理方法、プログラム
JP5326382B2 (ja) 2008-06-30 2013-10-30 富士通株式会社 変換管理装置

Also Published As

Publication number Publication date
US20150055868A1 (en) 2015-02-26
JP2015043164A (ja) 2015-03-05
US9448975B2 (en) 2016-09-20

Similar Documents

Publication Publication Date Title
US8037199B2 (en) Localization of resources used by applications in hand-held electronic devices and methods thereof
WO2021179809A1 (zh) 缓存和执行智能合约的方法和装置
CN106716398B (zh) 可视地区分用于测试的字符串
US20110162084A1 (en) Selecting portions of computer-accessible documents for post-selection processing
KR20060047421A (ko) 테이블을 이용한 언어 로컬화
JP2002529849A (ja) データ処理リソースを供給された内蔵システムにおいて実行可能な中間オブジェクトコードプログラムのためのデータ圧縮方法、および、この方法に対応しかつマルチアプリケーションを備えた内蔵システム
WO2021175053A1 (zh) 一种在虚拟机中执行功能模块的方法和装置
JP6209901B2 (ja) 文字データ処理方法、プログラム及び情報処理装置
US10409572B2 (en) Compiled file normalization
CN111241496B (zh) 确定小程序特征向量的方法、装置和电子设备
JP6440895B2 (ja) ソフトウェア分析装置及びソフトウェア分析方法
US7814415B2 (en) Bytecode localization engine and instructions
US9495638B2 (en) Scalable, rule-based processing
TWI289788B (en) Method, data processing system and computer recording medium for processing a set of instructions
US8463759B2 (en) Method and system for compressing data
JP5758311B2 (ja) テストコード生成装置、テストコード生成方法、テストコード生成プログラム
CN111273913B (zh) 一种输出规范表示的应用程序接口数据的方法及装置
US20030126124A1 (en) Cross platform locale data name mapping interfaces and methods of use thereof
JP6523345B2 (ja) プレーンasciiデータストリームの符号化
JP7247593B2 (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
JP5326382B2 (ja) 変換管理装置
CN106663020B (zh) 迁移支持装置
JP7083473B2 (ja) 入力支援装置
JP2017207876A (ja) ダンプマスクプログラム、ダンプマスク方法、および情報処理装置
JP6524887B2 (ja) 文字コード処理プログラム、情報処理装置、及び文字コード処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170328

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170828

R150 Certificate of patent or registration of utility model

Ref document number: 6209901

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150