(57)【要約】【課題】アプリケーションの出力データのみから効率よく文字化けを検出できるようにする。【解決手段】文字列付加装置１０が、アプリケーションへの入力データ等にＡＳＣＩＩ文字列とそれに続く文字化けし易い特定文字列とを付加し、アプリケーション実行装置２０が、文字列が付加されたアプリケーションを実行する。また、応答入力装置３０が、アプリケーションが出力する出力データに対する応答を入力し、データベース４０が、アプリケーションが出力する出力データを蓄積する。更に、文字化け検出装置５０が、アプリケーション実行装置２０、応答入力装置３０、データベース４０からの出力データにおいてＡＳＣＩＩ文字列に続く文字列と、入力データに付加された特定文字列との比較結果に基づいて、出力データにおける文字化けを検出する。【選択図】図１
2008186417.tif 000002
【特許請求の範囲】
【請求項１】
特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための装置であって、
ＡＳＣＩＩ文字列とそれに続く前記特定の言語に固有の特定文字列とを含む入力データに基づく前記アプリケーションの動作に応じて出力された出力データを取得する取得部と、
前記取得部により取得された前記出力データにおいて前記ＡＳＣＩＩ文字列に続く文字列と、前記入力データに含まれる前記特定文字列との比較結果に基づいて、当該出力データにおける文字化けの発生を認識する認識部と
を備えた、装置。
【請求項２】
前記ＡＳＣＩＩ文字列は、前記出力データに通常出現しない文字列であり、
前記特定文字列は、前記アプリケーションを作成するのに用いられたプログラミング言語、又は、前記アプリケーションが動作する環境によって、文字化けし易いと判断される文字列である、請求項１の装置。
【請求項３】
前記取得部は、前記出力データが通信回線を介して送信される場合に、当該通信回線を介したデータ通信を監視することにより当該出力データを取得する、請求項１の装置。
【請求項４】
前記取得部は、前記アプリケーションから出力されたデータに基づく操作者の操作又はプログラムの動作により生成されたデータを、前記出力データとして取得する、請求項１の装置。
【請求項５】
前記取得部により取得された前記出力データにおいて前記ＡＳＣＩＩ文字列に続く文字列と、前記入力データに含まれる前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報を出力する出力部を更に備えた、請求項１の装置。
【請求項６】
前記取得部により取得された前記出力データにおいて前記ＡＳＣＩＩ文字列に続く文字列と、前記入力データに含まれる前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報と、当該文字化けが発生している箇所に関する情報とを出力する出力部を更に備えた、請求項１の装置。
【請求項７】
特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための方法であって、
ＡＳＣＩＩ文字列とそれに続く前記特定の言語に固有の特定文字列とを入力データに付加するステップと、
前記入力データに基づいて前記アプリケーションを動作させるステップと、
前記アプリケーションの動作に応じて出力された出力データにおいて前記ＡＳＣＩＩ文字列に続く文字列と、予め所定の記憶手段に記憶された前記特定文字列とを照合することにより、当該出力データにおける文字化けの発生を認識するステップと
を含む、方法。
【請求項８】
前記アプリケーションの動作に応じて出力された前記出力データにおいて前記ＡＳＣＩＩ文字列に続く文字列と、前記所定の記憶手段に記憶された前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報と、当該文字化けが発生している箇所に関する情報とを出力するステップを更に含む、請求項７の方法。
【請求項９】
特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するためのプログラムであって、
コンピュータに、
ＡＳＣＩＩ文字列とそれに続く前記特定の言語に固有の特定文字列とを含む入力データに基づく前記アプリケーションの動作に応じて出力された出力データを取得する機能と、
前記出力データにおいて前記ＡＳＣＩＩ文字列に続く文字列と、前記入力データに含まれる前記特定文字列との比較結果に基づいて、当該出力データにおける文字化けの発生を認識する機能と
を実現させる、プログラム。
【請求項１０】
前記ＡＳＣＩＩ文字列は、前記出力データに通常出現しない文字列であり、
前記特定文字列は、前記アプリケーションを作成するのに用いられたプログラミング言語、又は、前記アプリケーションが動作する環境によって、文字化けし易いと判断される文字列である、請求項９のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字化けを検出するための装置、方法、プログラムに関し、より詳しくは、特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための装置、方法、プログラムに関する。
【背景技術】
【０００２】
近年、ソフトウェアの国際化が進んでいる。ソフトウェアの国際化とは、特定の１つの言語環境でしか利用できないソフトウェアを、それ以外の言語環境でも利用できるように整備することである。例えば、英語しか使用できないソフトウェアを改良し、英語以外の言語(例えば、日本語、中国語、韓国語、ドイツ語、ロシア語等)を使用できるようにすることを指す。
かかるソフトウェアの国際化を実施する場合、新たな言語環境におけるソフトウェアの動作に問題がないかのテストを行う必要がある。このようなテストは「国際化検証テスト」と呼ばれる。
【０００３】
国際化検証テストの主たる目的には、基本機能の動作確認の他に、(１)訳し漏れ(外部化漏れ)の検出、(２)文字化けの検出、(３)文字のはみ出しの検出、がある。
国際化されたソフトウェアでは、言語ごとに対応しなければならない部分を外部化して保持しておくことが一般に行われている。即ち、基本的な部分は正常に動作するように作成し、使用する言語に応じて異なってくる部分は例えば言語ごとの外部ファイルからデータを読み込んで動作させるようにする。(１)は、このような外部化の作業を忘れていないかのテストである。
また、英語しか使用しないのであれば通常文字化けは発生しないが、英語以外の言語を使用すると文字化けが発生する場合があるので、(２)のテストを行う必要がある。
更に、ボタン等のオブジェクトに表示する文字列が、同じ意味であっても言語によって長さが異なる場合がある。このような場合、英語では文字列全体がオブジェクトに表示されたとしても、英語以外の言語では文字列がオブジェクトに一部しか表示されないことも考えられる。そこで、(３)のテストが必要になってくる。
【０００４】
このように国際化検証テストには種々の確認項目があるが、現状では、ソフトウェアの動作結果を目視で確認することで(１)〜(３)のテストを行っている。例えば、日本語環境では、基本的な機能を用いて、日本語のテストデータを大量に入力したり、日本語を含むデータや画面を出力したりする操作を繰り返し行うことで、テストしている。
しかも、国際化検証テストでは、これを非常に多くの環境で行う必要がある。ここでいう環境には、日本語、ドイツ語、ロシア語、簡体字中国語等の言語環境だけでなく、ＯＳ(Operating System)の種類や、システムで使用する文字コードの種類等の環境も含まれる。
また、国際化検証テストで確認すべき対象も多岐にわたる。テスト対象のソフトウェアが例えばＸＭＬファイル、ＣＳＶファイル、ログファイルを出力する場合には、これら全てのファイルについてテストを行う必要がある。
このようなことから、(１)〜(３)のテストを目視による確認のみで行う方法では、テストを行う者の負担が極めて大きかった。
【０００５】
このことは、(１)〜(３)のうち、(２)文字化けの検出、だけを考えても当てはまる。
文字化けとは、元の文字が別の文字(意味不明な記号等)になってしまう現象のことをいう。日本語環境であれば、元の文字がひらがなや漢字等の所謂全角文字の場合に起こる。また、文字化けの原因としては、本来の文字コードと違う文字コードで読んだことや、正しく読むための文字コードが用意されていないこと等がある。
【０００６】
従来、文字化けの検出を行う一方法として、入力したデータと出力されるデータとを比較することが知られていた(例えば、特許文献１参照)。この特許文献１では、文字化け等により端末から印刷指示された画像データと異なるデータが印刷され始めたときに、印刷処理を自動的に停止し、記録紙の節約を行っている。
また、文字化けの検出を行う別の方法として、出力されるデータを登録情報と照合することも知られていた(例えば、特許文献２、３参照)。特許文献２では、テキストデータの各文字の文字コードが、現在使用している文字コード系のコード範囲内に収まっているか否かを判定し、これにより文字化けがあると判定された電子メールの読み上げを防止している。また、特許文献３では、印刷データの中で指定されているフォントが印刷時に使用できないものの場合にその指定を使用可能なフォントに置き換えた中間印刷データに変換し、この中間印刷データをＲＩＰ展開した場合に得られる文字列が辞書に登録されていない場合にその文字列を文字化けのある箇所として検出している。
更に、文字化けの検出を行う別の方法として、タグセットをアプリケーションデータに付加することも知られていた(例えば、特許文献４参照)。この特許文献４では、アプリケーションデータを出力する装置側では、その所定部分をタグで置き換えて訂正情報付きアプリケーションデータを生成し、これを入力する装置側では、訂正情報付きアプリケーションに含まれるタグセットを認識してアプリケーションデータ中の誤りや文字化けを検出している。
【０００７】
【特許文献１】特開２００６−１８５３８８号公報
【特許文献２】特開２０００−８２０２５号公報
【特許文献３】特開２００６−１６３５７８号公報
【特許文献４】特開２００２−１０９４７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、従来、文字化けの検出については、種々の方法が提案されていた。
しかしながら、アプリケーションの動作に基づくテストでは、特許文献１のように入力データと出力データとを比較するのは困難であるという問題点があった。一般に、アプリケーションは多くの入力データに基づいて動作し、多くの出力データを出力する。従って、ある出力データの元データがどの入力データであるか特定するのは難しいからである。
また、特許文献２、３のように登録情報との照合を行う方法では、入力データと出力データとの比較は行わなくてよいものの、予め登録可能な情報に基づいて検出可能なタイプの文字化けしか検出できないという問題点があった。
更に、特許文献４の方法には、入力データに対する訂正情報の付加を効率的に行うことにより、文字化けの検出をより効率的に行えるようになるという点で、更なる改善の余地がある。
【０００９】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、アプリケーションの出力データのみから効率よく文字化けを検出できるようにすることにある。
【課題を解決するための手段】
【００１０】
かかる目的のもと、本発明では、ＡＳＣＩＩ文字列とそれに続く特定文字列とを用いて文字化けを検出するようにした。即ち、本発明の装置は、特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための装置であって、ＡＳＣＩＩ文字列とそれに続く特定の言語に固有の特定文字列とを含む入力データに基づくアプリケーションの動作に応じて出力された出力データを取得する取得部と、この取得部により取得された出力データにおいてＡＳＣＩＩ文字列に続く文字列と、入力データに含まれる特定文字列との比較結果に基づいて、出力データにおける文字化けの発生を認識する認識部とを備えている。
【００１１】
ここで、ＡＳＣＩＩ文字列は、出力データに通常出現しない文字列とすることができ、特定文字列は、アプリケーションを作成するのに用いられたプログラミング言語、又は、アプリケーションが動作する環境によって、文字化けし易いと判断される文字列とすることができる。
また、取得部により取得された出力データにおいてＡＳＣＩＩ文字列に続く文字列と、入力データに含まれる特定文字列とが異なる場合に、出力データにおいて文字化けが発生している旨の情報を出力する出力部を備えてもよい。
更に、取得部により取得された出力データにおいてＡＳＣＩＩ文字列に続く文字列と、入力データに含まれる特定文字列とが異なる場合に、出力データにおいて文字化けが発生している旨の情報と、文字化けが発生している箇所に関する情報とを出力する出力部を備えてもよい。
【００１２】
また、本発明は、ＡＳＣＩＩ文字列とそれに続く特定文字列とを用いて文字化けを検出する方法として捉えることもできる。その場合、本発明の方法は、特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための方法であって、ＡＳＣＩＩ文字列とそれに続く特定の言語に固有の特定文字列とを入力データに付加するステップと、入力データに基づいてアプリケーションを動作させるステップと、アプリケーションの動作に応じて出力された出力データにおいてＡＳＣＩＩ文字列に続く文字列と、予め所定の記憶手段に記憶された特定文字列とを照合することにより、出力データにおける文字化けの発生を認識するステップとを含んでいる。
【００１３】
一方、本発明は、ＡＳＣＩＩ文字列とそれに続く特定文字列とを用いて文字化けを検出するためのコンピュータプログラムとして捉えることもできる。その場合、本発明のプログラムは、特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するためのプログラムであって、コンピュータに、ＡＳＣＩＩ文字列とそれに続く特定の言語に固有の特定文字列とを含む入力データに基づくアプリケーションの動作に応じて出力された出力データを取得する機能と、出力データにおいてＡＳＣＩＩ文字列に続く文字列と、入力データに含まれる特定文字列との比較結果に基づいて、出力データにおける文字化けの発生を認識する機能とを実現させるものである。
【発明の効果】
【００１４】
本発明によれば、アプリケーションの出力データのみから効率よく文字化けを検出できるようになる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図１は、本実施の形態におけるシステム構成の一例を示したブロック図である。
図示するように、このシステム構成例は、テスト対象のアプリケーション(以下、単に「アプリケーション」という)への入力データに対し、文字化け検出のための文字列を付加する文字列付加装置１０と、文字列が付加された入力データに基づいてアプリケーションを実行するアプリケーション実行装置２０とを含む。また、アプリケーションが実行されることによって出力された情報に対する応答を入力する応答入力装置３０と、アプリケーションが実行されることによって出力されたデータを蓄積するデータベース４０とを含む。更に、アプリケーションが実行されることによって出力された出力データ等から文字化けを検出する文字化け検出装置５０を含む。尚、本実施の形態では、アプリケーションとして、日本語を使用するものを想定しており、これが日本語環境で正しく動作するかどうかをテストするものとする。
【００１６】
文字列付加装置１０には、文字列を付加するためのソフトウェアである「文字列付加ツール」がインストールされており、この文字列付加ツールが、アプリケーションへの入力データであるメッセージリソース２１及びＸＭＬファイル２２内の所定の箇所に、文字化け検出のための文字列である「Qc+[-}TiLs構ソチ」を挿入する。ここで挿入する文字列は、ＡＳＣＩＩ文字列である「Qc+[-}TiLs」と、テスト対象の言語(本実施の形態では日本語)に固有の特定文字列である「構ソチ」とから構成されている。このうち、ＡＳＣＩＩ文字列としては、他では通常現れない特別なＡＳＣＩＩの文字列(例えば、テスト対象のデータ中に通常現れないＡＳＣＩＩ文字列)を用いている。また、特定文字列としては、「テスト対象のアプリケーションの特徴から特に文字化けし易いと判断できる文字」からなる文字列を用いる。この文字化けし易いと判断できる文字とは、アプリケーションを作成するのに用いたプログラミング言語、アプリケーションが動作する環境等によって、文字化けを発生し易いと一般に認められる文字のことを指す。
【００１７】
まず、プログラミング言語によって文字化けし易いと判断できる文字の例を挙げる。例えば、アプリケーションがＰｅｒｌで書かれていて、処理の中で正規表現が使われているとする。この場合、漢字やひらがな等で２バイト目が“５ｃ”(バックスラッシュ)、“５ｅ”( ^ )、“５ｂ”( [ )等と同じになっている文字が、正規表現における特別な文字と誤認される可能性があるため、文字化けを起こし易い文字となる。
次に、アプリケーションが動作する環境によって文字化けし易いと判断できる文字の例を挙げる。例えば、Ｗｉｎｄｏｗｓ(登録商標)のようにシフトＪＩＳを日本語の文字コードとして使用するプラットフォームで動作するアプリケーションについては、２バイト目が“５ｃ”である「構」、「ソ」、「チ」等の文字が考えられる。また、ドイツ語やフランス語のようなヨーロッパ系の言語では、ＡＳＣＩＩ文字に含まれないアクセントのついた文字が考えられる。このような文字は、ＵＴＦ−８(UCS Transformation Format - 8)で２バイトもしくは３バイトとしてマッピングされているので、コード変換を行わずに出力してしまうと文字化けしてしまう場合があるからである。
【００１８】
アプリケーション実行装置２０は、文字化け検出のための文字列である「Qc+[-}TiLs構ソチ」が付加されたメッセージリソース２１及びＸＭＬファイル２２を入力データとしてアプリケーションを実行する装置である。図示するように、アプリケーション実行装置２０がアプリケーションを実行することにより、ログ２３、ＸＭＬファイル２４、ＣＳＶファイル２５が出力される。また、ＨＴＭＬファイル２６が通信回線上に送出され、データベース４０(後述)に対してデータが書き込まれる。
【００１９】
応答入力装置３０は、アプリケーションが通信回線上に送出したＨＴＭＬファイル２６を受信し、これに基づく表示を行い、その表示に対する応答情報を入力する装置である。即ち、応答入力装置３０には、Ｗｅｂページを閲覧するためのブラウザがインストールされており、このブラウザがＨＴＭＬファイル２６を読み込んで解釈し、そこで指示された内容の例えばフォームを表示する。そして、操作者がこのフォーム上の入力項目にキーボード等を用いて情報を入力して送信を指示すると、入力された情報が処理され、ログ３２が出力されるようになっている。尚、この場合も、操作者が入力する情報には、文字化け検出のための文字列である「Qc+[-}TiLs構ソチ」が付加される。例えば、入力する情報にこの文字列を付加する機能をキーボードの特定のキーに割り付けておき、情報を入力する際にそのキーを押下することで文字化け検出のための文字列が入力情報に付加されるようにするとよい。
【００２０】
データベース４０は、アプリケーション実行装置２０がアプリケーションを実行することにより出力されるデータを蓄積する。そして、このデータベース４０からは、例えばＤＢＭＳ(Database Management System)の機能を用いて、その内容がダンプファイル４１として出力されるようになっている。
【００２１】
文字化け検出装置５０には、文字化けを検出するためのソフトウェアである「文字化け検出モニタ」がインストールされており、この文字化け検出モニタが、アプリケーションが出力するログ２３、ＸＭＬファイル２４、ＣＳＶファイル２５における文字化けの発生を検出する。また、通信回線におけるデータ通信を監視することで取得したＨＴＭＬファイル２６における文字化けの発生も検出する。更に、応答入力装置３０が出力したログ３２や、データベース４０に基づいて出力されたダンプファイル４１も監視対象として、文字化けの発生を検出する。ここで、本実施の形態では、アプリケーションから出力されたデータに基づく操作者の操作により生成されたデータの一例として、ログ３２を用いている。また、アプリケーションから出力されたデータに基づくプログラムの動作により生成されたデータの一例として、ダンプファイル４１を用いている。
【００２２】
図２は、本実施の形態におけるシステム構成の別の例を示したブロック図である。
図示するように、このシステム構成例も、図１のシステム構成例と同様、アプリケーションへの入力データに対し、文字化け検出のための文字列を付加する文字列付加装置１０と、文字列が付加された入力データに基づいてアプリケーションを実行するアプリケーション実行装置２０とを含む。また、アプリケーションが実行されることによって出力された情報に対する応答を入力する応答入力装置３０と、アプリケーションが実行されることによって出力されたデータを蓄積するデータベース４０とを含む。更に、アプリケーションが実行されることによって出力された出力データ等から文字化けを検出する文字化け検出装置５０を含む。
【００２３】
ここで、図２のシステム構成例が図１のシステム構成例と異なっているのは、応答入力装置３０が操作者のキー入力によって応答入力を行うのではなく、事前に作成された応答ファイル３１を読み込むことで自動的に応答入力を行う点である。即ち、応答入力装置３０では、ブラウザがＨＴＭＬファイル２６を読み込んで解釈し、そこで指示された内容の例えばフォームを表示する。そして、応答ファイル３１の読込みが指示されると、応答ファイル３１に記述された内容が順次、応答入力装置３０に取り込まれて処理され、ログ３２が出力されるようになっている。尚、この場合も、応答ファイル３１の記述には、文字化け検出のための文字列である「Qc+[-}TiLs構ソチ」が付加されている。
【００２４】
次に、本実施の形態における文字化けの検出の概要について説明する。
図３は、文字化け検出の流れを説明するための図である。
図示するように、まず、文字化け検出モニタは、文字化け検出のための文字列として「Qc+[-}TiLs構ソチ」が挿入されたストリングストリームを走査し、このうちのＡＳＣＩＩ文字列の部分である「Qc+[-}TiLs」を発見する。次に、文字化け検出モニタは、このＡＳＣＩＩ文字列「Qc+[-}TiLs」の直後が、事前に決めておいた文字化けし易い特定文字列である「構ソチ」であるかどうかを判定する。その結果、直後が「構ソチ」であれば、左下向きの矢印で示すように、文字化けしていないと判定し、直後が「構ソチ」でなければ、右下向きの矢印で示すように、文字化けしていると判定する。
【００２５】
以下、このような方法で文字化けを検出するシステムの具体的な構成及び動作について説明する。
＜文字列の付加＞
まず、文字列の付加を行う文字列付加装置１０について説明する。
図４は、本実施の形態における文字列付加装置１０の構成例を示したブロック図である。
図示するように、文字列付加装置１０は、送受信部１１と、ファイル記憶部１２と、指定受付部１３と、読込み部１４と、付加処理部１５と、書出し部１６と、付加規則記憶部１７と、文字列記憶部１８とを備える。
【００２６】
送受信部１１は、文字列を付加する対象のファイルを受信し、文字列を付加した後にそのファイルを送信する。図１には、文字列を付加する対象のファイルとして、メッセージリソース２１及びＸＭＬファイル２２が示されており、図２には、更に応答ファイル３１も示されている。従って、送受信部１１は、メッセージリソース２１、ＸＭＬファイル２２、応答ファイル３１を、例えばテスト担当者の端末装置(図示せず)から受信する。そして、文字列を付加した後、例えば、メッセージリソース２１及びＸＭＬファイル２２はアプリケーション実行装置２０に、応答ファイル３１は応答入力装置３０に、それぞれ送信する。
ファイル記憶部１２は、送受信部１１が受信したファイルや、送受信部１１が送信する対象となるファイル(文字列を付加した後のファイル)を記憶する。
【００２７】
指定受付部１３は、ファイル記憶部１２に記憶されたファイルのうち、文字列を付加するファイルの指定を受け付ける。例えば、文字列付加ツールが提供する画面上で、文字列を付加するファイルの選択操作が行える場合は、操作者によるそのような選択操作に関する情報を受け付ける。
読込み部１４は、指定受付部１３で受け付けた指定で特定されるファイルをファイル記憶部１２から読み込む。
付加処理部１５は、読込み部１４が読み込んだファイルに対し、文字列を付加する際の規則(以下、「付加規則」という)に従い、文字列を付加する。
書出し部１６は、付加処理部１５により文字列が付加されたファイルをファイル記憶部１２に書き戻す。
【００２８】
付加規則記憶部１７は、付加処理部１５がファイルに文字列を付加する際に用いる付加規則を記憶する。この付加規則は、文字列を付加する対象のファイルの種類に応じて定義することができる。例えば、メッセージリソース２１については、ステートメント内の最初の「＝」の直後に文字列を挿入する、という規則を記憶しておくとよい。或いは、メッセージリソース２１に含まれるステートメントのうち、「ｋｅｙｎ＝」(ｎ＝１，２，…)で始まるステートメントのみが出力データに影響することが分かっていれば、「ｋｅｙｎ＝」(ｎ＝１，２，…)の直後に文字列を挿入する、という規則を記憶しておいてもよい。また、ＸＭＬファイル２２や応答ファイル３１のようにＸＭＬ形式のファイルの場合は、開始タグと終了タグに囲まれた要素のうち、文字列を付加する対象とすべき要素を付加規則として定義しておけばよい。
【００２９】
文字列記憶部１８は、ファイルに付加する文字列を記憶する。ここで記憶する文字列は、ＡＳＣＩＩ文字列と文字化けし易い特定文字列とからなる、例えば、「Qc+[-}TiLs構ソチ」といった文字列である。但し、この文字列は、文字列記憶部１８に記憶させるのではなく、付加処理部１５の処理を実行するプログラム内に直接記述するようにしてもよい。
【００３０】
次に、文字列付加装置１０の動作について詳しく述べる。
図５は、文字列付加装置１０の動作例を詳述したフローチャートである。尚、ここでは、アプリケーションへの入力ファイルに文字列を付加するものとする。また、文字列を付加する対象の幾つかのファイルを送受信部１１が受信してファイル記憶部１２がそのファイルを記憶しているものとする。
文字列付加装置１０では、まず、指定受付部１３が、文字列を付加する対象となる入力ファイルの指定を受け付ける(ステップ１０１)。指定受付部１３は、指定された入力ファイルを特定する情報を読込み部１４に受け渡し、読込み部１４は、指定された入力ファイルをファイル記憶部１２から読み込む(ステップ１０２)。これにより、読み込まれた入力ファイルは、付加処理部１５が利用するメモリに展開される。
【００３１】
このように入力ファイルがメモリに展開されると、付加処理部１５は、この入力ファイルに対する付加規則を付加規則記憶部１７から読み込む(ステップ１０３)。そして、その入力ファイルに付加するＡＳＣＩＩ文字列と特定文字列とを文字列記憶部１８から読み込む(ステップ１０４)。
その後、付加処理部１５は、メモリに展開された入力ファイルを走査し、付加規則によって文字列を付加すべき箇所として定義された箇所を検索する(ステップ１０５)。そして、検索が成功したかどうかを判定し(ステップ１０６)、検索が成功していれば、検索された箇所に、ステップ１０４で読み込んだ文字列を挿入する(ステップ１０７)。そして、ステップ１０５に戻り、文字列を付加する箇所の検索及び文字列の挿入をステップ１０６での判定結果が「Ｎｏ」となるまで繰り返す。ステップ１０６での判定結果が「Ｎｏ」となれば、文字列を付加すべき箇所はそれ以上ないので、文字列の付加は終了し、ファイルをファイル記憶部１２に書き戻す(ステップ１０８)。
【００３２】
＜文字化けの検出＞
次に、文字化けを検出する文字化け検出装置５０について説明する。
図６は、本実施の形態における文字化け検出装置５０の構成例を示したブロック図である。
図示するように、文字化け検出装置５０は、受信部５１と、ファイル記憶部５２と、計時部５３と、読込み部５４と、検査処理部５５と、出力部５６と、文字列記憶部５７とを備える。
【００３３】
受信部５１は、アプリケーション実行装置２０がアプリケーションを実行することにより出力されたファイル、応答入力装置３０により出力されたファイル、データベース４０に基づいてＤＢＭＳにより出力されたファイル等の検査対象のファイルを受信する。ここで、受信部５１を設けたのは、通信回線を介して文字化け検出装置５０に接続された装置から検査対象のファイルを受信する形態が通常の形態として考えられるからである。例えば、図１、２に示したＨＴＭＬファイル２６は、通信回線上を流れるＨＴＴＰパケットを監視装置(図示せず)が捕捉することで取得される。そして、このような場合、ＨＴＭＬファイル２６は監視装置から通信回線を介して文字化け検出装置５０に送信されるのが一般的な形態であり、受信部５１は、このようにして送信されたＨＴＭＬファイル２６を受信する。しかしながら、必ずしも通信回線を介して受信しなければならないわけではなく、例えば、半導体メモリや磁気ディスク装置等の記憶手段を介して受け取るようにしてもよい。このような意味で、受信部５１は、アプリケーションの動作に応じて出力された出力データを取得する取得手段の一例と考えることができる。
ファイル記憶部５２は、受信部５１が受信した検査対象のファイルを記憶する。
【００３４】
計時部５３は、現在時刻を保持しており、読込み部５４に対して定期的にファイルを読み込んで検査処理部５５に渡すよう指示する。
読込み部５４は、計時部５３からの指示に従い、前回の動作以降に更新されたファイルの更新された部分をファイル記憶部５２から読み込む。
検査処理部５５は、読込み部５４が読み込んだファイルの部分に対し、文字化けしていないかどうかの検査を行う。本実施の形態において、検査処理部５５は、文字化けの発生を認識する認識手段の一例と考えることができる。
出力部５６は、検査処理部５５による検査の結果を出力する。ここでの出力は、例えば、文字化け検出装置５０が有するディスプレイへの表示であってもよいし、文字化け検出装置５０に接続されたプリンタに対する印刷であってもよい。
文字列記憶部５７は、文字化けを検出ために用意された文字列を記憶する。ここで記憶する文字列は、文字列付加装置１０の文字列記憶部１８に記憶されたものと同じものである。即ち、ＡＳＣＩＩ文字列と文字化けし易い特定文字列とからなる、例えば、「Qc+[-}TiLs構ソチ」といった文字列である。但し、この文字列は、文字列記憶部５７に記憶させるのではなく、検査処理部５５の処理を実行するプログラム内に直接記述するようにしてもよい。
【００３５】
次に、文字化け検出装置５０の動作について詳しく述べる。
図７は、文字化け検出装置５０の動作例を詳述したフローチャートである。尚、ここでは、アプリケーションからの出力ファイルにおいて文字化けを検出するものとする。また、受信部５１がアプリケーションからの出力ファイルを受信してファイル記憶部５２がそのファイルを記憶した状態で、計時部５３が読込み部５４に動作の開始を指示したものとする。
動作の開始が指示されると、読込み部５４は、前回の動作以降に生成された出力ファイルをファイル記憶部５２から検索する(ステップ５０１)。そして、検索が成功したかどうかを判定し(ステップ５０２)、検索が成功していれば、前回の動作以降に出力されたデータをそのファイル内で検索する(ステップ５０３)。そして、検索が成功したかどうかを判定し(ステップ５０４)、検索が成功していれば、読込み部５４は、そのデータを読み込んで検査処理部５５に受け渡す。尚、ステップ５０２で検索が失敗した場合は、前回の動作以降に生成された出力ファイルはないので、処理は終了する。また、ステップ５０４で検索が失敗した場合は、前回の動作以降に出力されたデータがその出力ファイル内にないので、その出力ファイルについての処理を終了し、ステップ５０１に戻って次の出力ファイルについての処理を行う。
【００３６】
次に、検査処理部５５は、読込み部５４から渡されたデータ内でＡＳＣＩＩ文字列を検索する(ステップ５０５)。ここで検索されるＡＳＣＩＩ文字列は、検査処理部５５が文字列記憶部５７から読み込んだものである。そして、検索が成功したかどうかを判定し(ステップ５０６)、検索が成功していれば、検査処理部５５は、ＡＳＣＩＩ文字列の次の文字列が特定文字列であるかどうかを判定する(ステップ５０７)。ここで比較対象となる特定文字列は、検査処理部５５が文字列記憶部５７から読み込んだものである。
その結果、次の文字列が特定文字列であれば、検査処理部５５は、文字化けは発生していないと判断する(ステップ５０８)。そして、その旨の情報と、今回検査した箇所の情報とを出力部５６に伝える。これにより、出力部５６は、文字化けでない旨と、検査対象箇所の情報とを出力する(ステップ５０９)。
一方、次の文字列が特定文字列でなければ、検査処理部５５は、文字化けが発生していると判断する(ステップ５１０)。そして、その旨の情報と、今回検査した箇所の情報とを出力部５６に伝える。これにより、出力部５６は、文字化けである旨と、検査対象箇所の情報とを出力する(ステップ５１１)。
【００３７】
尚、この動作例では、ＡＳＣＩＩ文字列が検索された検査対象箇所ごとに、文字化けであるかどうかの情報と検査対象箇所の情報とを出力するようにした。しかしながら、文字化けである場合だけこれらの情報を出力するようにしてもよい。また、検査対象箇所の情報は出力せず、文字化けの発生に関する情報(例えば、文字化けの発生頻度等)のみを出力するようにしてもよい。
【００３８】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図８は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるＣＰＵ(Central Processing Unit)１０ａと、Ｍ/Ｂ(マザーボード)チップセット１０ｂを介してＣＰＵ１０ａに接続されたメインメモリ１０ｃと、同じくＭ/Ｂチップセット１０ｂを介してＣＰＵ１０ａに接続された表示機構１０ｄとを備える。また、Ｍ/Ｂチップセット１０ｂには、ブリッジ回路１０ｅを介して、ネットワークインターフェイス１０ｆと、磁気ディスク装置(ＨＤＤ)１０ｇと、音声機構１０ｈと、キーボード/マウス１０ｉと、フレキシブルディスクドライブ１０ｊとが接続されている。
【００３９】
尚、図８において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ１０ａとＭ/Ｂチップセット１０ｂの間や、Ｍ/Ｂチップセット１０ｂとメインメモリ１０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ/Ｂチップセット１０ｂと表示機構１０ｄとの間は、ＡＧＰ(Accelerated Graphics Port)を介して接続されてもよいが、表示機構１０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ/Ｂチップセット１０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ(ＰＣＩｅ)バスを介して接続される。また、ブリッジ回路１０ｅと接続する場合、ネットワークインターフェイス１０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置１０ｇについては、例えば、シリアルＡＴＡ(AT Attachment)、パラレル転送のＡＴＡ、ＰＣＩ(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス１０ｉ、及び、フレキシブルディスクドライブ１０ｊについては、ＵＳＢ(Universal Serial Bus)を用いることができる。
【００４０】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(ＲＡＭ)、リードオンリーメモリ(ＲＯＭ)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(ＣＤ−ＲＯＭ)、コンパクトディスク−リード/ライト(ＣＤ−Ｒ/Ｗ)及びＤＶＤが含まれる。
【００４１】
以上述べたように、本実施の形態では、ＡＳＣＩＩ文字列とそれに続く文字化けし易い特定文字列とを入力ファイルに付加しておき、出力ファイルでは、ＡＳＣＩＩ文字列に続く文字が特定文字列のままであるかどうかに基づいて、文字化けを検出するようにした。このような構成により、入力ファイルに簡単な細工を行うだけで、アプリケーションの出力データのみから効率よく文字化けを検出できるようになった。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態におけるシステム構成の一例を示した図である。
【図２】本発明の実施の形態におけるシステム構成の別の例を示した図である。
【図３】本発明の実施の形態における文字化けの検出の概要を示した図である。
【図４】本発明の実施の形態における文字列付加装置の構成例を示したブロック図である。
【図５】本発明の実施の形態における文字列付加装置の動作例を示したフローチャートである。
【図６】本発明の実施の形態における文字化け検出装置の構成例を示したブロック図である。
【図７】本発明の実施の形態における文字化け検出装置の動作例を示したフローチャートである。
【図８】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【符号の説明】
【００４３】
１０…文字列付加装置、２０…アプリケーション実行装置、３０…応答入力装置、４０…データベース、５０…文字化け検出装置
【図１】
2008186417.tif 000003
【図２】
2008186417.tif 000004
【図３】
2008186417.tif 000005
【図４】
2008186417.tif 000006
【図５】
2008186417.tif 000007
【図６】
2008186417.tif 000008
【図７】
2008186417.tif 000009
【図８】
2008186417.tif 000010