(57)【特許請求の範囲】
【請求項１】
多言語の文字を表現可能な共通文字コードにより記述された文字列の表示処理を行うための文字処理装置であって、
上記共通文字コードにより記述された文字列を表示するときに使用される既定の言語が記憶されているロケール情報記憶手段と、
共通文字コードと、言語固有の文字コードと、の対応を示す文字コード変換テーブルと、上記文字コード変換テーブルを用いて、上記共通文字コードにより記述された文字列から、該共通文字コードに対応する言語固有の文字コードが１つのみである言語特有文字を探索する探索手段と、を有する文字列表示言語判定手段と、
上記共通文字コードにより記述された文字列を、上記文字列表示言語判定手段により判定された文字列表示言語固有の文字コードに変換する文字コード変換手段と、
上記変換された文字列表示言語固有の文字コードに対応するフォントを表示する表示手段と、
を具備し、
上記文字列表示言語判定手段は、上記探索手段により言語特有文字が発見された場合には、該言語特有文字の言語を文字列表示言語として判定し、上記探索手段により言語特有文字が発見されなかった場合には、上記ロケール情報記憶手段に記憶されている言語を文字列表示言語として判定する
ことを特徴とする文字処理装置。
【請求項２】
コンピュータに、多言語の文字を表現可能な共通文字コードにより記述された文字列の表示処理を行わせるための文字処理プログラムであって、
コンピュータに、
共通文字コードと、言語固有の文字コードと、の対応を示す文字コード変換テーブルを用いて、上記共通文字コードにより記述された文字列から、該共通文字コードに対応する言語固有の文字コードが１つのみである言語特有文字を探索する探索ステップを有する文字列表示言語判定ステップと、
上記共通文字コードにより記述された文字列を、上記文字列表示言語判定ステップにより判定された文字列表示言語固有の文字コードに変換する文字コード変換ステップと、
上記変換された文字列表示言語固有の文字コードに対応するフォントを表示する表示ステップと、
を行わせるプログラムであって、かつ、
上記文字列表示言語判定ステップは、上記探索ステップにより言語特有文字が発見された場合には、該言語特有文字の言語を文字列表示言語として判定し、上記探索ステップにより言語特有文字が発見されなかった場合には、上記共通文字コードにより記述された文字列を表示するときに使用される既定の言語が記憶されているロケール情報記憶手段に記憶されている言語を文字列表示言語として判定する
ことを特徴とする文字処理プログラム。
【請求項３】
多言語の文字を表現可能な共通文字コードにより記述された文字列の表示処理を行うための文字処理方法であって、
共通文字コードと、言語固有の文字コードと、の対応を示す文字コード変換テーブルを用いて、上記共通文字コードにより記述された文字列から、該共通文字コードに対応する言語固有の文字コードが１つのみである言語特有文字を探索する探索ステップを有する文字列表示言語判定ステップと、
上記共通文字コードにより記述された文字列を、上記文字列表示言語判定ステップにより判定された文字列表示言語固有の文字コードに変換する文字コード変換ステップと、
上記変換された文字列表示言語固有の文字コードに対応するフォントを表示する表示ステップと、
を有し、
上記文字列表示言語判定ステップは、上記探索ステップにより言語特有文字が発見された場合には、該言語特有文字の言語を文字列表示言語として判定し、上記探索ステップにより言語特有文字が発見されなかった場合には、上記共通文字コードにより記述された文字列を表示するときに使用される既定の言語が記憶されているロケール情報記憶手段に記憶されている言語を文字列表示言語として判定する
ことを特徴とする文字処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通文字コードにより記述された文字列の表示処理を行うための文字処理装置、文字処理プログラム、文字処理方法に関する。
【背景技術】
【０００２】
コンピュータなどの情報処理装置において文字を表現する際には、通常、各文字に、該文字を特定可能な文字コードをそれぞれ割り当てて、この文字コードによって文字を表現している。そして、ある言語に属する文字群に対応する文字コードの組は、文字コードセットと呼ばれる。この文字コードセットには、言語やプラットフォームによって種々のものが存在しており、例えば英語圏ではＡＳＣＩＩコードが広く使用されている。また、日本、中国、台湾、韓国などの文字種類の多いアジア圏では、自国語を使用することができるように、ＡＳＣＩＩコードを拡張した別々の文字コードセットが、それぞれの国で使用されている。
【０００３】
しかし、これらの各文字コードセットは、他の文字コードセットの使用を考慮したものとはなっていないために、複数の文字コードセット間において互いに違う文字に同じ文字コードが割り当てられているという事態が生じている。このために、以前は、複数の言語圏の文字を１つの文字コードセットにより表現することができなかった。
【０００４】
これに対して近年、世界中の文字を表現可能な文字コードセット（共通文字コード）としてユニコードが策定されて、普及が進んでいる。このユニコードは、言語圏に依存することなく文字を特定することができるために、情報処理の対象となる文字が複数の言語圏に渡る場合であっても、誤認識することなく表現することが可能となる利点がある。
【０００５】
しかし、上述したユニコードは、言語圏が異なる場合であっても字形が類似すると判断された文字には、同じ文字コードが割り当てられたものとなっている。このために、ユニコードを使用した場合には、各言語間の字形の相違を表現することができないという課題が生じている。
【０００６】
これに対して、特開２０００−２２７７９０号公報には、文字列をユニコードにより表現したデータ列と、当該文字列の表示に使用するフォントタイプ（字形識別情報）と、の組合せを記憶して、記憶したフォントタイプに基づいて文字列を表示する技術が記載されている。
【特許文献１】特開２０００−２２７７９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特開２０００−２２７７９０号公報に記載されたものでは、ユニコードにより表現された文字列の内でも、フォントタイプが記録されていない文字列は、適切な字形で表示することができない。具体的には、例えばマルチメディアコンテンツのヘッダにはフォントタイプが記録されておらず、ヘッダ内にユニコードで記録された文字列を適切な字形で表示することができない。
【０００８】
本発明は上記事情に鑑みてなされたものであり、共通文字コードにより表現された文字列を、適切なフォントを用いて表示することができる文字処理装置、文字処理プログラム、文字処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明の一態様である文字処理装置は、多言語の文字を表現可能な共通文字コードにより記述された文字列の表示処理を行うための文字処理装置であって、上記共通文字コードにより記述された文字列を表示するときに使用される既定の言語が記憶されているロケール情報記憶手段と、共通文字コードと、言語固有の文字コードと、の対応を示す文字コード変換テーブルと、上記文字コード変換テーブルを用いて、上記共通文字コードにより記述された文字列から、該共通文字コードに対応する言語固有の文字コードが１つのみである言語特有文字を探索する探索手段と、を有する文字列表示言語判定手段と、上記共通文字コードにより記述された文字列を、上記文字列表示言語判定手段により判定された文字列表示言語固有の文字コードに変換する文字コード変換手段と、上記変換された文字列表示言語固有の文字コードに対応するフォントを表示する表示手段と、を具備し、上記文字列表示言語判定手段は、上記探索手段により言語特有文字が発見された場合には、該言語特有文字の言語を文字列表示言語として判定し、上記探索手段により言語特有文字が発見されなかった場合には、上記ロケール情報記憶手段に記憶されている言語を文字列表示言語として判定することを特徴とする。
【００１２】
本発明の他の態様である文字処理プログラムは、コンピュータに、多言語の文字を表現可能な共通文字コードにより記述された文字列の表示処理を行わせるための文字処理プログラムであって、コンピュータに、共通文字コードと、言語固有の文字コードと、の対応を示す文字コード変換テーブルを用いて、上記共通文字コードにより記述された文字列から、該共通文字コードに対応する言語固有の文字コードが１つのみである言語特有文字を探索する探索ステップを有する文字列表示言語判定ステップと、上記共通文字コードにより記述された文字列を、上記文字列表示言語判定ステップにより判定された文字列表示言語固有の文字コードに変換する文字コード変換ステップと、上記変換された文字列表示言語固有の文字コードに対応するフォントを表示する表示ステップと、を行わせるプログラムであって、かつ、上記文字列表示言語判定ステップは、上記探索ステップにより言語特有文字が発見された場合には、該言語特有文字の言語を文字列表示言語として判定し、上記探索ステップにより言語特有文字が発見されなかった場合には、上記共通文字コードにより記述された文字列を表示するときに使用される既定の言語が記憶されているロケール情報記憶手段に記憶されている言語を文字列表示言語として判定することを特徴とする。
【００１３】
本発明の他の態様である文字処理方法は、多言語の文字を表現可能な共通文字コードにより記述された文字列の表示処理を行うための文字処理方法であって、共通文字コードと、言語固有の文字コードと、の対応を示す文字コード変換テーブルを用いて、上記共通文字コードにより記述された文字列から、該共通文字コードに対応する言語固有の文字コードが１つのみである言語特有文字を探索する探索ステップを有する文字列表示言語判定ステップと、上記共通文字コードにより記述された文字列を、上記文字列表示言語判定ステップにより判定された文字列表示言語固有の文字コードに変換する文字コード変換ステップと、上記変換された文字列表示言語固有の文字コードに対応するフォントを表示する表示ステップと、を有し、上記文字列表示言語判定ステップは、上記探索ステップにより言語特有文字が発見された場合には、該言語特有文字の言語を文字列表示言語として判定し、上記探索ステップにより言語特有文字が発見されなかった場合には、上記共通文字コードにより記述された文字列を表示するときに使用される既定の言語が記憶されているロケール情報記憶手段に記憶されている言語を文字列表示言語として判定することを特徴とする。
【発明の効果】
【００１４】
本発明の文字処理装置、文字処理プログラム、文字処理方法によれば、共通文字コードにより表現された文字列を、適切なフォントを用いて表示することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。
【００１６】
［実施形態１］
図１から図１１は本発明の実施形態１を示したものであり、図１は情報処理装置１の構成を示すブロック図である。
【００１７】
この情報処理装置１は、ＣＰＵ１０１と、パワースイッチ１０２と、ＬＣＤ表示装置１０３と、ＬＣＤドライバ１０４と、ＬＣＤ照明装置１０５と、タッチ操作入力装置１０６と、ＡＶ出力回路１０７と、インジケータ１０８と、電源回路１０９と、バス１１０と、ＳＤＲＡＭ１１１と、フラッシュメモリ１１２と、ＨＤＤ１１３と、外部通信Ｉ／Ｆ１１４と、水晶振動子１１５と、を備え、文字処理装置として機能するものである。
【００１８】
ＣＰＵ１０１は、この情報処理装置１内の各部を制御する制御部であり、文字列表示言語判定手段、文字コード変換手段、探索手段を兼ねたものとなっている。
【００１９】
パワースイッチ１０２は、ユーザの操作に応じて、この情報処理装置１の動作開始／停止を切り替えるための電源スイッチである。このパワースイッチ１０２は、ＣＰＵ１０１に接続されている。
【００２０】
ＬＣＤ表示装置１０３は、文字列、画像、ビデオ等のコンテンツの情報を表示するための透過型のカラー液晶表示装置である。
【００２１】
ＬＣＤドライバ１０４は、ＣＰＵ１０１の制御に基づいて、ＬＣＤ表示装置１０３を制御し表示を行わせるためのものである。
【００２２】
ＬＣＤ照明装置１０５は、ＣＰＵ１０１の制御に基づいて、ＬＣＤ表示装置１０３を背面側から照明するバックライトである。
【００２３】
タッチ操作入力装置１０６は、ＬＣＤ表示装置１０３の表示画面上に配設されていて、ユーザの指の接触位置、またはペンなどの接触用先端部を備えた部材の接触位置を検知するためのものである。このタッチ操作入力装置１０６の検出信号は、ＣＰＵ１０１へ出力されるようになっている。
【００２４】
そして、これらＬＣＤ表示装置１０３、ＬＣＤドライバ１０４、ＬＣＤ照明装置１０５は、表示手段を構成している。さらに、これらＬＣＤ表示装置１０３、ＬＣＤドライバ１０４、ＬＣＤ照明装置１０５、およびタッチ操作入力装置１０６は、タッチパネルを構成している。このタッチパネルを用いることにより、この情報処理装置１が必要とする操作キーを仮想的に実現することが可能である。従って、この情報処理装置１は、上述したパワースイッチ１０２以外の操作キーは特に備えていない。
【００２５】
ＡＶ出力回路１０７は、ＣＰＵ１０１の制御に基づいて、テレビ等の外部装置にビデオ信号およびオーディオ信号を供給するための回路である。
【００２６】
インジケータ１０８は、ＣＰＵ１０１の制御に基づいて、この情報処理装置１の状態をユーザに告知するための告知手段である。このインジケータ１０８は、光によりユーザに告知を行うためのＬＥＤや、音によりユーザに告知を行うためのブザー等を含んでいる。
【００２７】
電源回路１０９は、ＣＰＵ１０１の制御に基づいて、この情報処理装置１内の各部の動作に必要な電力を、図示しない内蔵バッテリや外部のＡＣアダプタから供給するためのものである。
【００２８】
バス１１０は、上記ＣＰＵ１０１と、ＳＤＲＡＭ１１１，フラッシュメモリ１１２，ＨＤＤ１１３，および外部通信Ｉ／Ｆ１１４と、を接続して、アドレスおよびデータを伝送するための伝送路である。
【００２９】
ＳＤＲＡＭ１１１は、上述したＣＰＵ１０１の作業領域として用いられるメモリであり、該ＣＰＵ１０１により実行されるプログラムや、各種のデータ等がロードされるようになっている。
【００３０】
フラッシュメモリ１１２は、日付データやロケール情報等の各種データ、制御プログラムの一部、制御パラメータ等を記憶するための書き換え可能な不揮発性メモリである。このフラッシュメモリ１１２は、ロケール情報記憶手段であるとともに、文字列表示言語判定手段の一部を構成している。
【００３１】
ＨＤＤ１１３は、制御プログラムやコンテンツデータを保存しておくためのハードディスクドライブである。
【００３２】
外部通信Ｉ／Ｆ１１４は、外部装置と通信するためのインタフェースであり、例えばＵＳＢインタフェースがその一例として挙げられる。
【００３３】
水晶振動子１１５は、上述したＣＰＵ１０１の動作クロックを、該ＣＰＵ１０１へ供給するためのものである。
【００３４】
次に、図２は、情報処理装置１のフラッシュメモリ１１２の記憶領域の構成を概念的に示す図、図３は、情報処理装置１のＨＤＤ１１３の記憶領域の構成を概念的に示す図である。
【００３５】
図３に示すように、ＨＤＤ１１３には、この情報処理装置１により扱う複数のコンテンツデータ（コンテンツＨ０００１，コンテンツＨ０００２，コンテンツＨ０００３，…）１１３ａが格納されている。
【００３６】
また、図２に示すように、フラッシュメモリ１１２には、システム情報１１２ａと、文字コード変換テーブル１１２ｂと、フォントテーブル１１２ｃと、が格納されている。システム情報１１２ａは、日付データやロケール情報等を含んでいる。文字コード変換テーブル１１２ｂは、共通文字コードとしてのユニコードを用いた文字列の文字コードを、各言語固有の文字コードヘ変換する際に参照するデータベースであり、文字列表示言語判定手段を構成している。フォントテーブル１１２ｃは、各言語固有の文字コードに対応したフォントを格納するデータベースである。ここに、フォントテーブル１１２ｃは、言語別に存在しており、つまり、この情報処理装置１により扱う言語の数だけフォントテーブル１１２ｃが存在している（図２に示す例では、日本語フォント、簡体字フォント、繁体字フォント、韓国語フォント、…が記載されている）。
【００３７】
上述したような文字コード変換テーブル１１２ｂは、具体的には、図４に示すようなデータ構造を備えている。図４は、文字コード変換テーブル１１２ｂのデータ構造を示す図である。
【００３８】
すなわち、この文字コード変換テーブル１１２ｂは、ユニコードを表す列と、そのユニコードが表す字形に対応する各言語固有の文字コードを記録した列と、を有して構成されている。そして、各言語固有の文字コードを記録した列は、この情報処理装置１により扱う言語の数だけ登録されている。なお、ユニコードが表す字形に対応する言語固有の文字コードが存在しない場合は、対応する文字コードが存在しないことを示す値が記録されている。これにより、ある１つのユニコードが表す字形に対応する言語の数と、対応する各言語固有の文字コードと、を判定することが可能となっている。
【００３９】
図５は、文字コード変換テーブル１１２ｂにおける、ＣＪＫ（中国、日本、韓国）統合漢字の幾つかのユニコードとこれに対応する各言語固有の文字コードとの具体例を示す図表、図６は、図５における各言語固有の文字コードに対応する字形を具体的に示す図表である。
【００４０】
例えばユニコード「Ｕ＋９ＡＡ８」は、日本語、簡体字、繁体字、韓国語の４言語それぞれ固有の文字コードに対応しており、それぞれの言語において字形が異なっていることがわかる。
【００４１】
また、ユニコード「Ｕ＋７６Ｄ０」は簡体字のみに対応し、ユニコード「Ｕ＋７６Ｄ３」は繁体字のみに対応していて、その結果、各ユニコードが表す字形も１つのみであることがわかる。このように、１つのユニコードに対して、言語、字形が一意に定まる文字、すなわち上述した文字コード変換テーブル１１２ｂにおいてあるユニコードに対応する言語固有の文字コードが１つのみである文字を、これ以降、言語特有文字と呼ぶことにする。
【００４２】
図７は、情報処理装置１における、ユニコードにより表現された文字列の表示処理を示すフローチャートである。
【００４３】
ＣＰＵ１０１は、ユニコードにより表現された文字列の表示処理を行う場合には、この処理を実行する。なお、この処理に対応する制御プログラムは、例えばＨＤＤ１１３に記録されていて、実行する前にＳＤＲＡＭ１１にロードされるようになっている。
【００４４】
この処理を開始すると、ＣＰＵ１０１は、まず、処理対象となる文字列の言語を判定するサブルーチンを実行する（ステップＳ１０１）。この文字列言語判定サブルーチンについては、後で図８を参照して詳しく説明する。
【００４５】
次に、ＣＰＵ１０１は、ステップＳ１０１の処理により決定された言語のフォントテーブル１１２ｃを、フラッシュメモリ１１２から読み出す（ステップＳ１０２）。
【００４６】
続いて、ユニコードにより表現された文字列の先頭の文字データを処理対象として（ステップＳ１０３）、その文字データを文字コード変換テーブル１１２ｂに従って、ステップＳ１０１において決定した文字列の言語固有の文字コードに変換する（ステップＳ１０４）。
【００４７】
ここで、文字列の言語固有の文字コードへの変換に成功したか否かを判定する（ステップＳ１０５）。
【００４８】
すなわち、ＣＰＵ１０１は、ステップＳ１０１により決定した、文字コード変換テーブル１１２ｂ内の文字列言語の列において、処理対処文字に対応する文字コードが発見されない場合には、このステップＳ１０５において、言語固有の文字コードへの変換が失敗したと判定する。一方、ＣＰＵ１０１は、処理対象文字に対応する文字コードが発見された場合には、このステップＳ１０５において、言語固有の文字コードへの変換が成功したと判定する。
【００４９】
この判定処理について、図５および図６を参照しながら、より具体的に説明する。
【００５０】
まず、処理対象文字がユニコード「Ｕ＋９ＡＡ８」であるときについて説明する。ＣＰＵ１０１は、このユニコード「Ｕ＋９ＡＡ８」を、ステップＳ１０１において文字列が、日本語であると判定された場合はＪＩＳ文字コードセットの「２５９２」へ、簡体字であると判定された場合はＧＢ２３１２文字コードセットの「２５３９」へ、繁体字であると判定された場合はＢＩＧ５文字コードセットの「Ｂ０Ａ９」へ、韓国語であると判定された場合はＫＳ文字コードセットの「４５７３」へ、それぞれ変換する。
【００５１】
また、処理対象文字がユニコード「Ｕ＋７６Ｄ０」であるときには、ステップＳ１０１において文字列が簡体字であると判定された場合はＧＢ２３１２文字コードセットの「４９４６」へ変換するが、ステップＳ１０１で文字列が簡体字以外の言語であると判定された場合は対応する文字コードが存在しないために変換が失敗したと判定する。
【００５２】
こうして、ステップＳ１０５において変換が成功したと判定された場合には、変換後の言語固有の文字コードに対応したフォントを、ステップＳ１０２において読み出した言語固有のフォントテーブル１１２ｃから読み出して、ＬＣＤ表示装置１０３に表示する（ステップＳ１０６）。
【００５３】
一方、ステップＳ１０５において変換が失敗したと判定された場合には、対応する言語固有の文字コードおよびフォントが存在しないために、例えば「．」（ピリオド）をＬＣＤ表示装置１０３に表示する（ステップＳ１０７）。
【００５４】
ステップＳ１０６またはステップＳ１０７の処理を行ってユニコード１文字分のフォントを出力した後に、文字列における次の文字を処理対象としてセットする（ステップＳ１０８）。
【００５５】
そして、セットしたデータが文字データであるか否か、つまり、文字列内に次の文字データが存在するか否か、を判定する（ステップＳ１０９）。
【００５６】
ここで、次の文字データが存在する場合には、上記ステップ１０４に戻って、上述したような処理を繰り返して行う。
【００５７】
また、ステップＳ１０９において、次の文字データが存在しないと判定された場合には、表示対象文字列の全ての文字についての処理が終了したことになるために、この文字列表示処理を終了する。
【００５８】
ここで、図９、図１０、図１１に示すようなユニコードにより表現された文字列の幾つかの表示例に関する、図７に示したような文字列の表示処理を具体的に説明する。なお、図９はユニコードにより表現された文字列の第１の表示例を示す図、図１０はユニコードにより表現された文字列の第２の表示例を示す図、図１１はユニコードにより表現された文字列の第３の表示例を示す図である。
【００５９】
各図中において、「文字列言語」として示されている言語は、文字言語判定サブルーチン（ステップＳ１０１）により決定された文字列言語である。
【００６０】
図９に示す文字列、すなわちユニコードにより「Ｕ＋９ＡＡ８  Ｕ＋７６Ｄ０  Ｕ＋７６Ｄ３」（なお、文字コードの区切りを分かり易くするために、文字コード同士の間に空白を入れているが、実際の文字列の中には空白は入らない。以下、同様。）として表現される３文字からなる文字列の場合には、後で詳しく説明するように、簡体字のみに存在する言語特有文字「Ｕ＋７６Ｄ０」（図６も参照）が存在するために、ロケール設定言語が日本語であるにも関わらず、ステップＳ１０１の文字列言語判定サブルーチンによって、文字列言語が簡体字であると決定される。
【００６１】
その後、ステップＳ１０２において、簡体字のフォントテーブル１１２ｃを情報処理装置１のフラッシュメモリ１１２から読み出す。
【００６２】
そして、ステップＳ１０３において、文字列の先頭データ、すなわちユニコード「Ｕ＋９ＡＡ８」を処理対象とする。
【００６３】
続いて、ステップＳ１０４において、処理対象文字をステップＳ１０１で決定した文字列言語、すなわち、この図９に示す例では簡体字の文字コード「２５３９」へ変換する。
【００６４】
ステップＳ１０４における簡体字の文字コードへの変換は成功しているために、ステップＳ１０５では成功したと判定される。
【００６５】
次に、ステップＳ１０６において、変換した文字コードに対応する簡体字のフォントを、ＬＣＤ表示装置１０３に表示する。
【００６６】
その後、ステップＳ１０８において、現在処理対象となっている文字の次の文字、すなわち、２文字目の「Ｕ＋７６Ｄ０」を処理対象とする。
【００６７】
ステップＳ１０８において次に処理するべき文字が設定されているために、ステップＳ１０９においては、次に処理対象とする文字があると判定され、ステップＳ１０４へ戻って、２文字目「Ｕ＋７６Ｄ０」について、上述したような先頭文字の場合と同様の処理を繰り返して行う。
【００６８】
こうして、２文字目の処理をステップＳ１０６まで行ったところで、次のステップＳ１０８において、３文字目、すなわち「Ｕ＋７６Ｄ３」をセットする。
【００６９】
そして、ステップＳ１０９において次の文字があると判定され、ステップＳ１０４へ戻って言語に固有の文字コードへの変換を行おうとする。しかし、この３文字目「Ｕ＋７６Ｄ３」は、繁体字特有の文字であるために、簡体字においては対応する文字コードが存在しない。
【００７０】
従って、ステップＳ１０５において簡体字の文字コードへの変換に失敗したと判定され、ステップＳ１０７へ進んでＬＣＤ表示装置１０３へ「．」（ピリオド）を表示する。
【００７１】
以上説明したように、ユニコードにより「Ｕ＋９ＡＡ８  Ｕ＋７６Ｄ０  Ｕ＋７６Ｄ３」として示される３文字からなる文字列の表示を行った場合には、ＬＣＤ表示装置１０３には、図９の最下欄に示すような文字列が表示される。
【００７２】
また、図１０に示すような文字列の表示処理も、図９に示した文字列とほぼ同様に行われる。
【００７３】
この図１０に示す文字列は、ユニコードにより「Ｕ＋９ＡＡ８  Ｕ＋７６ＣＡ  Ｕ＋７６Ｆ４」として表現される３文字からなる文字列となっている。この文字列には、言語特有文字が存在しないために、後で詳しく説明するように、ステップＳ１０１の文字列言語判定サブルーチンによって、文字列言語がロケール設定言語である日本語に決定される。従って、ステップＳ１０２において日本語のフォントテーブルが読み出され、図１０の最下欄に示すような日本語フォントによる文字列が表示される。
【００７４】
さらに、図１１に示すような文字列の表示処理も、図９、図１０に示した文字列とほぼ同様に行われる。
【００７５】
この図１１に示す文字列は、図１０に示した文字列と同じく、ユニコードにより「Ｕ＋９ＡＡ８  Ｕ＋７６ＣＡ  Ｕ＋７６Ｆ４」として表現される３文字からなる文字列となっている。そして、上述と同様に、ステップＳ１０１の文字列言語判定サブルーチンによって、文字列言語がロケール設定言語である簡体字に決定される。従って、ステップＳ１０２において簡体字のフォントテーブルが読み出され、図１１の最下欄に示すような簡体字フォントによる文字列が表示される。
【００７６】
こうして、図１０に示す例と、図１１に示す例とは、文字列が同一のユニコード文字列であるにも関わらず、結果として異なる字形により表示されることになる。
【００７７】
図８は、図７のステップＳ１０１においてコールされる、文字列の言語を判定するサブルーチンの処理を示すフローチャートである。
【００７８】
この処理を開始すると、まず、文字列の先頭データを処理対象文字データにセットして（ステップＳ１５１）、この処理対象文字データが言語特有文字であるか否かを判定する（ステップＳ１５２）。
【００７９】
ここで、処理対象文字データが言語特有文字であるか否かの判定は、文字コード変換テーブル１１２ｂを用いて行われる。すなわち、この文字コード変換テーブル１１２ｂにおいて、処理対象のユニコード文字データに対応する言語固有の文字コードが１つのみである場合には、ＣＰＵ１０１は、その処理対象文字が言語特有文字であると判定する。
【００８０】
図５および図６に示したユニコードを例にとると、処理対象文字データがユニコード「Ｕ＋９ＡＡ８」である場合には、文字コード変換テーブル１１２ｂにおいてこのユニコードに対応する言語固有の文字コードが複数存在するために、言語特有文字ではないと判定される。
【００８１】
また、処理対象文字データがユニコード「Ｕ＋７６Ｄ０」である場合には、文字コード変換テーブル１１２ｂにおいてこのユニコードに対応する言語固有の文字コードが簡体字（ＧＢ２３１２）の「４９４６」のみに定まるために、言語特有文字であると判定される。
【００８２】
同様に、処理対象文字データがユニコード「Ｕ＋７６Ｄ３」である場合には、文字コード変換テーブル１１２ｂにおいてこのユニコードに対応する言語固有の文字コードが繁体字（ＢＩＧ５）の「Ｄ６Ａ７」のみに定まるために、言語特有文字であると判定される。
【００８３】
こうして、ステップＳ１５２において、処理対象データが言語特有文字であると判定された場合には、文字列の言語を言語特有文字の言語に設定して（ステップＳ１５５）、この文字列言語判定処理のサブルーチンを終了する。
【００８４】
例えば、処理対象文字データがユニコード「Ｕ＋７６Ｄ０」である場合には、ステップＳ１５２において、この処理対象文字が言語特有文字であり、簡体字（ＧＢ２３１２）の文字コード「４９４６」に対応していると判定される。このときには、現在の処理対象文字データ以降の文字データの判定を行うことなく、文字列全体の言語を簡体字に設定して、このサブルーチンを終了する。
【００８５】
一方、ステップＳ１５２において、処理対象データが言語特有文字ではないと判定された場合には、文字列中の次の文字を処理対象データとしてセットする（ステップＳ１５３）。
【００８６】
そして、セットしたデータが文字データであるか否か、つまり、文字列内に次の文字データが存在するか否か、を判定する（ステップＳ１５４）。
【００８７】
ここで、次の文字データが存在する場合には、上記ステップＳ１５２に戻って、上述したような処理を繰り返して行う。
【００８８】
また、ステップＳ１５４において、次の文字データが存在しないと判定された場合には、文字列の全ての文字についての処理が終了し、文字列中には言語特有文字が存在しなかったことになる。
【００８９】
この場合には、文字列の言語をロケールに該当した言語に設定し（ステップＳ１５６）、この文字列言語判定処理のサブルーチンを終了する。ここにロケールとは、この情報処理装置１に既定値として設定されている地域、言語の値であり、上述したように、フラッシュメモリ１１２内にシステム情報１１２ａとして保存されている。
【００９０】
この図８に示したような文字列言語判定処理を、図９、図１０、図１１に示したようなユニコード文字列について、具体的に説明する。
【００９１】
図９に示すような例の場合、すなわち、ユニコードにより「Ｕ＋９ＡＡ８  Ｕ＋７６Ｄ０  Ｕ＋７６Ｄ３」として表現される文字列の場合には、まず、ステップＳ１５１において、先頭文字データ、すなわち「Ｕ＋９ＡＡ８」を処理対象とする。
【００９２】
そして、ステップＳ１５２において、この文字が言語特有文字であるか否かを判定する。図５および図６に示したように、ユニコード「Ｕ＋９ＡＡ８」は、日本語、簡体字、繁体字、韓国語の４言語に係る固有の文字コードにそれぞれ対応しているために、このステップＳ１５２においては、言語特有文字ではないと判定される。
【００９３】
そして、ステップＳ１５３において、次の文字、すなわち２文字目の「Ｕ＋７６Ｄ０」を処理対象とする。
【００９４】
このステップＳ１５３において、次に処理するべき文字が設定されたために、続くステップＳ１５４においては、次に処理するべき文字があると判定される。
【００９５】
その後、ステップＳ１５２へ戻って、ステップＳ１５３において設定された文字が言語特有文字であるか否かを、上述した先頭文字の場合と同様に判定する。すなわち、２文字目「Ｕ＋７６Ｄ０」は、図５および図６に示すように、簡体字の文字コードのみに対応するために、ステップＳ１５２において言語特有文字であると判定される。
【００９６】
従って、ステップＳ１５５へ進んで、ユニコード文字列「Ｕ＋９ＡＡ８  Ｕ＋７６Ｄ０  Ｕ＋７６Ｄ３」の言語として簡体字を設定し、この文字列言語判定処理を終了する。
【００９７】
図１０、図１１に示す例の場合も、図９に示す例の場合と同様の処理を行う。
【００９８】
ただし、図１０、図１１に示す例において扱われるユニコード文字列「Ｕ＋９ＡＡ８  Ｕ＋７６ＣＡ  Ｕ＋７６Ｆ４」は、全て言語特有文字ではない文字から構成されている。従って、先頭文字から１文字毎に順次行われる言語特有文字であるかの判定処理において、文字列を構成する全ての文字について言語特有文字ではないと判定される。
【００９９】
こうして、文字列の最後の文字が言語特有文字ではないと判定された後に、最終的にステップＳ１５６に到達し、文字列言語がロケールに該当した言語に設定される。上述したように、図１０に示す例においては、ロケール設定言語が日本語であるために、文字列言語が日本語に設定される。また、図１１に示す例においては、ロケール設定言語が簡体字であるために、文字列言語が簡体字に設定される。
【０１００】
このように、同じユニコード文字列「Ｕ＋９ＡＡ８  Ｕ＋７６ＣＡ  Ｕ＋７６Ｆ４」であっても、文字列中に言語特有文字が存在しない場合には、ロケール情報に応じて異なる言語が設定されることになる。
【０１０１】
なお、上述では、文字列の先頭文字から順に文字列言語判定処理を行い、最初に発見された言語特有文字の言語を、文字列言語とするようにしているが、これに限るものではない。例えば、文字列の最後の文字から逆順に遡って文字列言語判定処理を行い、最初に発見された言語特有文字の言語を、文字列言語とすることも可能である。あるいは、文字列を構成する全ての文字について文字列言語判定処理を行い、複数種類の言語特有文字が発見された場合には、最も出現頻度が高い言語特有文字の言語を、文字列言語とするようにしても良い。
【０１０２】
また、上述では、文字処理装置として情報処理装置１を例に挙げて説明しているが、文字処理プログラムをコンピュータに実行させることにより同様の処理を行うようにしても良いし、既存の処理装置等に文字処理方法を適用して同様の処理を行うようにしても構わない。
【０１０３】
このような実施形態１によれば、ユニコードにより表現された文字列中に言語特有文字が存在するか否かを判定し、存在する場合には、言語特有文字の言語がその文字列の言語であると判定するようにしているために、ユニコードにより表現された文字列中に複数の言語の字形に割り当てられたユニコード文字が存在する場合にも、言語特有文字の言語固有のフォントを使用して適正な表示を行うことができる。従って、ユニコードにより表現された文字列を表示する際に、その文字列の表示に使用するフォントタイプの情報が存在しなくても、その文字列を適切なフォントを用いて表示することが可能となる。
【０１０４】
また、文字列中に言語特有文字が存在しない場合には、情報処理装置１に設定されているロケールの言語がその文字列の言語であると判定するようにしている。ここに、ロケールは、情報処理装置１に設定されている地域、言語の既定値であって、通常は情報処理装置１の使用者の母国語が設定される。従って、ユニコードにより表現された文字列中に複数の言語の字形に割り当てられたユニコード文字が存在する場合には、文字列の記入者が意図した字形では表示されない可能性はあるものの、情報処理装置１の使用者が認識可能な字形により表示することができる利点がある。
【０１０５】
なお、本発明は上述した実施形態に限定されるものではなく、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能であることは勿論である。
【産業上の利用可能性】
【０１０６】
本発明は、共通文字コードにより記述された文字列の表示処理を行うための文字処理装置、文字処理プログラム、文字処理方法に好適に利用することができる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態１における情報処理装置の構成を示すブロック図。
【図２】上記実施形態１における情報処理装置のフラッシュメモリの記憶領域の構成を概念的に示す図。
【図３】上記実施形態１における情報処理装置のＨＤＤの記憶領域の構成を概念的に示す図。
【図４】上記実施形態１における文字コード変換テーブルのデータ構造を示す図。
【図５】上記実施形態１の文字コード変換テーブルにおける、ＣＪＫ統合漢字の幾つかのユニコードとこれに対応する各言語固有の文字コードとの具体例を示す図表。
【図６】上記図５における各言語固有の文字コードに対応する字形を具体的に示す図表。
【図７】上記実施形態１の情報処理装置における、ユニコードにより表現された文字列の表示処理を示すフローチャート。
【図８】上記図７のステップＳ１０１においてコールされる、文字列の言語を判定するサブルーチンの処理を示すフローチャート。
【図９】上記実施形態１において、ユニコードにより表現された文字列の第１の表示例を示す図。
【図１０】上記実施形態１において、ユニコードにより表現された文字列の第２の表示例を示す図。
【図１１】上記実施形態１において、ユニコードにより表現された文字列の第３の表示例を示す図。
【符号の説明】
【０１０８】
１…情報処理装置（文字処理装置）
１０１…ＣＰＵ（文字列表示言語判定手段、文字コード変換手段、探索手段）
１０２…パワースイッチ
１０３…ＬＣＤ表示装置（表示手段）
１０４…ＬＣＤドライバ（表示手段）
１０５…ＬＣＤ照明装置（表示手段）
１０６…タッチ操作入力装置
１０７…ＡＶ出力回路
１０８…インジケータ
１０９…電源回路
１１０…バス
１１１…ＳＤＲＡＭ
１１２…フラッシュメモリ（文字列表示言語判定手段、ロケール情報記憶手段）
１１２ａ…システム情報（ロケール情報を含む）
１１２ｂ…文字コード変換テーブル（文字列表示言語判定手段）
１１２ｃ…フォントテーブル
１１３…ＨＤＤ
１１３ａ…コンテンツデータ
１１４…外部通信Ｉ／Ｆ
１１５…水晶振動子
【図１】
0004812421.tif 000002
【図２】
0004812421.tif 000003
【図３】
0004812421.tif 000004
【図４】
0004812421.tif 000005
【図５】
0004812421.tif 000006
【図６】
0004812421.tif 000007
【図７】
0004812421.tif 000008
【図８】
0004812421.tif 000009
【図９】
0004812421.tif 000010
【図１０】
0004812421.tif 000011
【図１１】
0004812421.tif 000012