JP4363533B2 - 文字化けを検出するための装置、方法、及びプログラム - Google Patents

文字化けを検出するための装置、方法、及びプログラム Download PDF

Info

Publication number
JP4363533B2
JP4363533B2 JP2007021874A JP2007021874A JP4363533B2 JP 4363533 B2 JP4363533 B2 JP 4363533B2 JP 2007021874 A JP2007021874 A JP 2007021874A JP 2007021874 A JP2007021874 A JP 2007021874A JP 4363533 B2 JP4363533 B2 JP 4363533B2
Authority
JP
Japan
Prior art keywords
character string
garbled
output
application
specific
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.)
Expired - Fee Related
Application number
JP2007021874A
Other languages
English (en)
Other versions
JP2008186417A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2007021874A priority Critical patent/JP4363533B2/ja
Priority to US12/015,605 priority patent/US20080181504A1/en
Publication of JP2008186417A publication Critical patent/JP2008186417A/ja
Application granted granted Critical
Publication of JP4363533B2 publication Critical patent/JP4363533B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、文字化けを検出するための装置、方法、プログラムに関し、より詳しくは、特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための装置、方法、プログラムに関する。
近年、ソフトウェアの国際化が進んでいる。ソフトウェアの国際化とは、特定の1つの言語環境でしか利用できないソフトウェアを、それ以外の言語環境でも利用できるように整備することである。例えば、英語しか使用できないソフトウェアを改良し、英語以外の言語(例えば、日本語、中国語、韓国語、ドイツ語、ロシア語等)を使用できるようにすることを指す。
かかるソフトウェアの国際化を実施する場合、新たな言語環境におけるソフトウェアの動作に問題がないかのテストを行う必要がある。このようなテストは「国際化検証テスト」と呼ばれる。
国際化検証テストの主たる目的には、基本機能の動作確認の他に、(1)訳し漏れ(外部化漏れ)の検出、(2)文字化けの検出、(3)文字のはみ出しの検出、がある。
国際化されたソフトウェアでは、言語ごとに対応しなければならない部分を外部化して保持しておくことが一般に行われている。即ち、基本的な部分は正常に動作するように作成し、使用する言語に応じて異なってくる部分は例えば言語ごとの外部ファイルからデータを読み込んで動作させるようにする。(1)は、このような外部化の作業を忘れていないかのテストである。
また、英語しか使用しないのであれば通常文字化けは発生しないが、英語以外の言語を使用すると文字化けが発生する場合があるので、(2)のテストを行う必要がある。
更に、ボタン等のオブジェクトに表示する文字列が、同じ意味であっても言語によって長さが異なる場合がある。このような場合、英語では文字列全体がオブジェクトに表示されたとしても、英語以外の言語では文字列がオブジェクトに一部しか表示されないことも考えられる。そこで、(3)のテストが必要になってくる。
このように国際化検証テストには種々の確認項目があるが、現状では、ソフトウェアの動作結果を目視で確認することで(1)〜(3)のテストを行っている。例えば、日本語環境では、基本的な機能を用いて、日本語のテストデータを大量に入力したり、日本語を含むデータや画面を出力したりする操作を繰り返し行うことで、テストしている。
しかも、国際化検証テストでは、これを非常に多くの環境で行う必要がある。ここでいう環境には、日本語、ドイツ語、ロシア語、簡体字中国語等の言語環境だけでなく、OS(Operating System)の種類や、システムで使用する文字コードの種類等の環境も含まれる。
また、国際化検証テストで確認すべき対象も多岐にわたる。テスト対象のソフトウェアが例えばXMLファイル、CSVファイル、ログファイルを出力する場合には、これら全てのファイルについてテストを行う必要がある。
このようなことから、(1)〜(3)のテストを目視による確認のみで行う方法では、テストを行う者の負担が極めて大きかった。
このことは、(1)〜(3)のうち、(2)文字化けの検出、だけを考えても当てはまる。
文字化けとは、元の文字が別の文字(意味不明な記号等)になってしまう現象のことをいう。日本語環境であれば、元の文字がひらがなや漢字等の所謂全角文字の場合に起こる。また、文字化けの原因としては、本来の文字コードと違う文字コードで読んだことや、正しく読むための文字コードが用意されていないこと等がある。
従来、文字化けの検出を行う一方法として、入力したデータと出力されるデータとを比較することが知られていた(例えば、特許文献1参照)。この特許文献1では、文字化け等により端末から印刷指示された画像データと異なるデータが印刷され始めたときに、印刷処理を自動的に停止し、記録紙の節約を行っている。
また、文字化けの検出を行う別の方法として、出力されるデータを登録情報と照合することも知られていた(例えば、特許文献2、3参照)。特許文献2では、テキストデータの各文字の文字コードが、現在使用している文字コード系のコード範囲内に収まっているか否かを判定し、これにより文字化けがあると判定された電子メールの読み上げを防止している。また、特許文献3では、印刷データの中で指定されているフォントが印刷時に使用できないものの場合にその指定を使用可能なフォントに置き換えた中間印刷データに変換し、この中間印刷データをRIP展開した場合に得られる文字列が辞書に登録されていない場合にその文字列を文字化けのある箇所として検出している。
更に、文字化けの検出を行う別の方法として、タグセットをアプリケーションデータに付加することも知られていた(例えば、特許文献4参照)。この特許文献4では、アプリケーションデータを出力する装置側では、その所定部分をタグで置き換えて訂正情報付きアプリケーションデータを生成し、これを入力する装置側では、訂正情報付きアプリケーションに含まれるタグセットを認識してアプリケーションデータ中の誤りや文字化けを検出している。
特開2006−185388号公報 特開2000−82025号公報 特開2006−163578号公報 特開2002−109475号公報
このように、従来、文字化けの検出については、種々の方法が提案されていた。
しかしながら、アプリケーションの動作に基づくテストでは、特許文献1のように入力データと出力データとを比較するのは困難であるという問題点があった。一般に、アプリケーションは多くの入力データに基づいて動作し、多くの出力データを出力する。従って、ある出力データの元データがどの入力データであるか特定するのは難しいからである。
また、特許文献2、3のように登録情報との照合を行う方法では、入力データと出力データとの比較は行わなくてよいものの、予め登録可能な情報に基づいて検出可能なタイプの文字化けしか検出できないという問題点があった。
更に、特許文献4の方法には、入力データに対する訂正情報の付加を効率的に行うことにより、文字化けの検出をより効率的に行えるようになるという点で、更なる改善の余地がある。
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、アプリケーションの出力データのみから効率よく文字化けを検出できるようにすることにある。
かかる目的のもと、本発明では、ASCII文字列とそれに続く特定文字列とを用いて文字化けを検出するようにした。即ち、本発明の装置は、特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための装置であって、ASCII文字列とそれに続く特定の言語に固有の特定文字列とを含む入力データに基づくアプリケーションの動作に応じて出力された出力データを取得する取得部と、この取得部により取得された出力データにおいてASCII文字列に続く文字列と、入力データに含まれる特定文字列との比較結果に基づいて、出力データにおける文字化けの発生を認識する認識部とを備えている。
ここで、ASCII文字列は、出力データに通常出現しない文字列とすることができ、特定文字列は、アプリケーションを作成するのに用いられたプログラミング言語、又は、アプリケーションが動作する環境によって、文字化けし易いと判断される文字列とすることができる。
また、取得部により取得された出力データにおいてASCII文字列に続く文字列と、入力データに含まれる特定文字列とが異なる場合に、出力データにおいて文字化けが発生している旨の情報を出力する出力部を備えてもよい。
更に、取得部により取得された出力データにおいてASCII文字列に続く文字列と、入力データに含まれる特定文字列とが異なる場合に、出力データにおいて文字化けが発生している旨の情報と、文字化けが発生している箇所に関する情報とを出力する出力部を備えてもよい。
また、本発明は、ASCII文字列とそれに続く特定文字列とを用いて文字化けを検出する方法として捉えることもできる。その場合、本発明の方法は、特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための方法であって、ASCII文字列とそれに続く特定の言語に固有の特定文字列とを入力データに付加するステップと、入力データに基づいてアプリケーションを動作させるステップと、アプリケーションの動作に応じて出力された出力データにおいてASCII文字列に続く文字列と、予め所定の記憶手段に記憶された特定文字列とを照合することにより、出力データにおける文字化けの発生を認識するステップとを含んでいる。
一方、本発明は、ASCII文字列とそれに続く特定文字列とを用いて文字化けを検出するためのコンピュータプログラムとして捉えることもできる。その場合、本発明のプログラムは、特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するためのプログラムであって、コンピュータに、ASCII文字列とそれに続く特定の言語に固有の特定文字列とを含む入力データに基づくアプリケーションの動作に応じて出力された出力データを取得する機能と、出力データにおいてASCII文字列に続く文字列と、入力データに含まれる特定文字列との比較結果に基づいて、出力データにおける文字化けの発生を認識する機能とを実現させるものである。
本発明によれば、アプリケーションの出力データのみから効率よく文字化けを検出できるようになる。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図1は、本実施の形態におけるシステム構成の一例を示したブロック図である。
図示するように、このシステム構成例は、テスト対象のアプリケーション(以下、単に「アプリケーション」という)への入力データに対し、文字化け検出のための文字列を付加する文字列付加装置10と、文字列が付加された入力データに基づいてアプリケーションを実行するアプリケーション実行装置20とを含む。また、アプリケーションが実行されることによって出力された情報に対する応答を入力する応答入力装置30と、アプリケーションが実行されることによって出力されたデータを蓄積するデータベース40とを含む。更に、アプリケーションが実行されることによって出力された出力データ等から文字化けを検出する文字化け検出装置50を含む。尚、本実施の形態では、アプリケーションとして、日本語を使用するものを想定しており、これが日本語環境で正しく動作するかどうかをテストするものとする。
文字列付加装置10には、文字列を付加するためのソフトウェアである「文字列付加ツール」がインストールされており、この文字列付加ツールが、アプリケーションへの入力データであるメッセージリソース21及びXMLファイル22内の所定の箇所に、文字化け検出のための文字列である「Qc+[-}TiLs構ソチ」を挿入する。ここで挿入する文字列は、ASCII文字列である「Qc+[-}TiLs」と、テスト対象の言語(本実施の形態では日本語)に固有の特定文字列である「構ソチ」とから構成されている。このうち、ASCII文字列としては、他では通常現れない特別なASCIIの文字列(例えば、テスト対象のデータ中に通常現れないASCII文字列)を用いている。また、特定文字列としては、「テスト対象のアプリケーションの特徴から特に文字化けし易いと判断できる文字」からなる文字列を用いる。この文字化けし易いと判断できる文字とは、アプリケーションを作成するのに用いたプログラミング言語、アプリケーションが動作する環境等によって、文字化けを発生し易いと一般に認められる文字のことを指す。
まず、プログラミング言語によって文字化けし易いと判断できる文字の例を挙げる。例えば、アプリケーションがPerlで書かれていて、処理の中で正規表現が使われているとする。この場合、漢字やひらがな等で2バイト目が“5c”(バックスラッシュ)、“5e”( ^ )、“5b”( [ )等と同じになっている文字が、正規表現における特別な文字と誤認される可能性があるため、文字化けを起こし易い文字となる。
次に、アプリケーションが動作する環境によって文字化けし易いと判断できる文字の例を挙げる。例えば、Windows(登録商標)のようにシフトJISを日本語の文字コードとして使用するプラットフォームで動作するアプリケーションについては、2バイト目が“5c”である「構」、「ソ」、「チ」等の文字が考えられる。また、ドイツ語やフランス語のようなヨーロッパ系の言語では、ASCII文字に含まれないアクセントのついた文字が考えられる。このような文字は、UTF−8(UCS Transformation Format - 8)で2バイトもしくは3バイトとしてマッピングされているので、コード変換を行わずに出力してしまうと文字化けしてしまう場合があるからである。
アプリケーション実行装置20は、文字化け検出のための文字列である「Qc+[-}TiLs構ソチ」が付加されたメッセージリソース21及びXMLファイル22を入力データとしてアプリケーションを実行する装置である。図示するように、アプリケーション実行装置20がアプリケーションを実行することにより、ログ23、XMLファイル24、CSVファイル25が出力される。また、HTMLファイル26が通信回線上に送出され、データベース40(後述)に対してデータが書き込まれる。
応答入力装置30は、アプリケーションが通信回線上に送出したHTMLファイル26を受信し、これに基づく表示を行い、その表示に対する応答情報を入力する装置である。即ち、応答入力装置30には、Webページを閲覧するためのブラウザがインストールされており、このブラウザがHTMLファイル26を読み込んで解釈し、そこで指示された内容の例えばフォームを表示する。そして、操作者がこのフォーム上の入力項目にキーボード等を用いて情報を入力して送信を指示すると、入力された情報が処理され、ログ32が出力されるようになっている。尚、この場合も、操作者が入力する情報には、文字化け検出のための文字列である「Qc+[-}TiLs構ソチ」が付加される。例えば、入力する情報にこの文字列を付加する機能をキーボードの特定のキーに割り付けておき、情報を入力する際にそのキーを押下することで文字化け検出のための文字列が入力情報に付加されるようにするとよい。
データベース40は、アプリケーション実行装置20がアプリケーションを実行することにより出力されるデータを蓄積する。そして、このデータベース40からは、例えばDBMS(Database Management System)の機能を用いて、その内容がダンプファイル41として出力されるようになっている。
文字化け検出装置50には、文字化けを検出するためのソフトウェアである「文字化け検出モニタ」がインストールされており、この文字化け検出モニタが、アプリケーションが出力するログ23、XMLファイル24、CSVファイル25における文字化けの発生を検出する。また、通信回線におけるデータ通信を監視することで取得したHTMLファイル26における文字化けの発生も検出する。更に、応答入力装置30が出力したログ32や、データベース40に基づいて出力されたダンプファイル41も監視対象として、文字化けの発生を検出する。ここで、本実施の形態では、アプリケーションから出力されたデータに基づく操作者の操作により生成されたデータの一例として、ログ32を用いている。また、アプリケーションから出力されたデータに基づくプログラムの動作により生成されたデータの一例として、ダンプファイル41を用いている。
図2は、本実施の形態におけるシステム構成の別の例を示したブロック図である。
図示するように、このシステム構成例も、図1のシステム構成例と同様、アプリケーションへの入力データに対し、文字化け検出のための文字列を付加する文字列付加装置10と、文字列が付加された入力データに基づいてアプリケーションを実行するアプリケーション実行装置20とを含む。また、アプリケーションが実行されることによって出力された情報に対する応答を入力する応答入力装置30と、アプリケーションが実行されることによって出力されたデータを蓄積するデータベース40とを含む。更に、アプリケーションが実行されることによって出力された出力データ等から文字化けを検出する文字化け検出装置50を含む。
ここで、図2のシステム構成例が図1のシステム構成例と異なっているのは、応答入力装置30が操作者のキー入力によって応答入力を行うのではなく、事前に作成された応答ファイル31を読み込むことで自動的に応答入力を行う点である。即ち、応答入力装置30では、ブラウザがHTMLファイル26を読み込んで解釈し、そこで指示された内容の例えばフォームを表示する。そして、応答ファイル31の読込みが指示されると、応答ファイル31に記述された内容が順次、応答入力装置30に取り込まれて処理され、ログ32が出力されるようになっている。尚、この場合も、応答ファイル31の記述には、文字化け検出のための文字列である「Qc+[-}TiLs構ソチ」が付加されている。
次に、本実施の形態における文字化けの検出の概要について説明する。
図3は、文字化け検出の流れを説明するための図である。
図示するように、まず、文字化け検出モニタは、文字化け検出のための文字列として「Qc+[-}TiLs構ソチ」が挿入されたストリングストリームを走査し、このうちのASCII文字列の部分である「Qc+[-}TiLs」を発見する。次に、文字化け検出モニタは、このASCII文字列「Qc+[-}TiLs」の直後が、事前に決めておいた文字化けし易い特定文字列である「構ソチ」であるかどうかを判定する。その結果、直後が「構ソチ」であれば、左下向きの矢印で示すように、文字化けしていないと判定し、直後が「構ソチ」でなければ、右下向きの矢印で示すように、文字化けしていると判定する。
以下、このような方法で文字化けを検出するシステムの具体的な構成及び動作について説明する。
<文字列の付加>
まず、文字列の付加を行う文字列付加装置10について説明する。
図4は、本実施の形態における文字列付加装置10の構成例を示したブロック図である。
図示するように、文字列付加装置10は、送受信部11と、ファイル記憶部12と、指定受付部13と、読込み部14と、付加処理部15と、書出し部16と、付加規則記憶部17と、文字列記憶部18とを備える。
送受信部11は、文字列を付加する対象のファイルを受信し、文字列を付加した後にそのファイルを送信する。図1には、文字列を付加する対象のファイルとして、メッセージリソース21及びXMLファイル22が示されており、図2には、更に応答ファイル31も示されている。従って、送受信部11は、メッセージリソース21、XMLファイル22、応答ファイル31を、例えばテスト担当者の端末装置(図示せず)から受信する。そして、文字列を付加した後、例えば、メッセージリソース21及びXMLファイル22はアプリケーション実行装置20に、応答ファイル31は応答入力装置30に、それぞれ送信する。
ファイル記憶部12は、送受信部11が受信したファイルや、送受信部11が送信する対象となるファイル(文字列を付加した後のファイル)を記憶する。
指定受付部13は、ファイル記憶部12に記憶されたファイルのうち、文字列を付加するファイルの指定を受け付ける。例えば、文字列付加ツールが提供する画面上で、文字列を付加するファイルの選択操作が行える場合は、操作者によるそのような選択操作に関する情報を受け付ける。
読込み部14は、指定受付部13で受け付けた指定で特定されるファイルをファイル記憶部12から読み込む。
付加処理部15は、読込み部14が読み込んだファイルに対し、文字列を付加する際の規則(以下、「付加規則」という)に従い、文字列を付加する。
書出し部16は、付加処理部15により文字列が付加されたファイルをファイル記憶部12に書き戻す。
付加規則記憶部17は、付加処理部15がファイルに文字列を付加する際に用いる付加規則を記憶する。この付加規則は、文字列を付加する対象のファイルの種類に応じて定義することができる。例えば、メッセージリソース21については、ステートメント内の最初の「=」の直後に文字列を挿入する、という規則を記憶しておくとよい。或いは、メッセージリソース21に含まれるステートメントのうち、「keyn=」(n=1,2,…)で始まるステートメントのみが出力データに影響することが分かっていれば、「keyn=」(n=1,2,…)の直後に文字列を挿入する、という規則を記憶しておいてもよい。また、XMLファイル22や応答ファイル31のようにXML形式のファイルの場合は、開始タグと終了タグに囲まれた要素のうち、文字列を付加する対象とすべき要素を付加規則として定義しておけばよい。
文字列記憶部18は、ファイルに付加する文字列を記憶する。ここで記憶する文字列は、ASCII文字列と文字化けし易い特定文字列とからなる、例えば、「Qc+[-}TiLs構ソチ」といった文字列である。但し、この文字列は、文字列記憶部18に記憶させるのではなく、付加処理部15の処理を実行するプログラム内に直接記述するようにしてもよい。
次に、文字列付加装置10の動作について詳しく述べる。
図5は、文字列付加装置10の動作例を詳述したフローチャートである。尚、ここでは、アプリケーションへの入力ファイルに文字列を付加するものとする。また、文字列を付加する対象の幾つかのファイルを送受信部11が受信してファイル記憶部12がそのファイルを記憶しているものとする。
文字列付加装置10では、まず、指定受付部13が、文字列を付加する対象となる入力ファイルの指定を受け付ける(ステップ101)。指定受付部13は、指定された入力ファイルを特定する情報を読込み部14に受け渡し、読込み部14は、指定された入力ファイルをファイル記憶部12から読み込む(ステップ102)。これにより、読み込まれた入力ファイルは、付加処理部15が利用するメモリに展開される。
このように入力ファイルがメモリに展開されると、付加処理部15は、この入力ファイルに対する付加規則を付加規則記憶部17から読み込む(ステップ103)。そして、その入力ファイルに付加するASCII文字列と特定文字列とを文字列記憶部18から読み込む(ステップ104)。
その後、付加処理部15は、メモリに展開された入力ファイルを走査し、付加規則によって文字列を付加すべき箇所として定義された箇所を検索する(ステップ105)。そして、検索が成功したかどうかを判定し(ステップ106)、検索が成功していれば、検索された箇所に、ステップ104で読み込んだ文字列を挿入する(ステップ107)。そして、ステップ105に戻り、文字列を付加する箇所の検索及び文字列の挿入をステップ106での判定結果が「No」となるまで繰り返す。ステップ106での判定結果が「No」となれば、文字列を付加すべき箇所はそれ以上ないので、文字列の付加は終了し、ファイルをファイル記憶部12に書き戻す(ステップ108)。
<文字化けの検出>
次に、文字化けを検出する文字化け検出装置50について説明する。
図6は、本実施の形態における文字化け検出装置50の構成例を示したブロック図である。
図示するように、文字化け検出装置50は、受信部51と、ファイル記憶部52と、計時部53と、読込み部54と、検査処理部55と、出力部56と、文字列記憶部57とを備える。
受信部51は、アプリケーション実行装置20がアプリケーションを実行することにより出力されたファイル、応答入力装置30により出力されたファイル、データベース40に基づいてDBMSにより出力されたファイル等の検査対象のファイルを受信する。ここで、受信部51を設けたのは、通信回線を介して文字化け検出装置50に接続された装置から検査対象のファイルを受信する形態が通常の形態として考えられるからである。例えば、図1、2に示したHTMLファイル26は、通信回線上を流れるHTTPパケットを監視装置(図示せず)が捕捉することで取得される。そして、このような場合、HTMLファイル26は監視装置から通信回線を介して文字化け検出装置50に送信されるのが一般的な形態であり、受信部51は、このようにして送信されたHTMLファイル26を受信する。しかしながら、必ずしも通信回線を介して受信しなければならないわけではなく、例えば、半導体メモリや磁気ディスク装置等の記憶手段を介して受け取るようにしてもよい。このような意味で、受信部51は、アプリケーションの動作に応じて出力された出力データを取得する取得手段の一例と考えることができる。
ファイル記憶部52は、受信部51が受信した検査対象のファイルを記憶する。
計時部53は、現在時刻を保持しており、読込み部54に対して定期的にファイルを読み込んで検査処理部55に渡すよう指示する。
読込み部54は、計時部53からの指示に従い、前回の動作以降に更新されたファイルの更新された部分をファイル記憶部52から読み込む。
検査処理部55は、読込み部54が読み込んだファイルの部分に対し、文字化けしていないかどうかの検査を行う。本実施の形態において、検査処理部55は、文字化けの発生を認識する認識手段の一例と考えることができる。
出力部56は、検査処理部55による検査の結果を出力する。ここでの出力は、例えば、文字化け検出装置50が有するディスプレイへの表示であってもよいし、文字化け検出装置50に接続されたプリンタに対する印刷であってもよい。
文字列記憶部57は、文字化けを検出ために用意された文字列を記憶する。ここで記憶する文字列は、文字列付加装置10の文字列記憶部18に記憶されたものと同じものである。即ち、ASCII文字列と文字化けし易い特定文字列とからなる、例えば、「Qc+[-}TiLs構ソチ」といった文字列である。但し、この文字列は、文字列記憶部57に記憶させるのではなく、検査処理部55の処理を実行するプログラム内に直接記述するようにしてもよい。
次に、文字化け検出装置50の動作について詳しく述べる。
図7は、文字化け検出装置50の動作例を詳述したフローチャートである。尚、ここでは、アプリケーションからの出力ファイルにおいて文字化けを検出するものとする。また、受信部51がアプリケーションからの出力ファイルを受信してファイル記憶部52がそのファイルを記憶した状態で、計時部53が読込み部54に動作の開始を指示したものとする。
動作の開始が指示されると、読込み部54は、前回の動作以降に生成された出力ファイルをファイル記憶部52から検索する(ステップ501)。そして、検索が成功したかどうかを判定し(ステップ502)、検索が成功していれば、前回の動作以降に出力されたデータをそのファイル内で検索する(ステップ503)。そして、検索が成功したかどうかを判定し(ステップ504)、検索が成功していれば、読込み部54は、そのデータを読み込んで検査処理部55に受け渡す。尚、ステップ502で検索が失敗した場合は、前回の動作以降に生成された出力ファイルはないので、処理は終了する。また、ステップ504で検索が失敗した場合は、前回の動作以降に出力されたデータがその出力ファイル内にないので、その出力ファイルについての処理を終了し、ステップ501に戻って次の出力ファイルについての処理を行う。
次に、検査処理部55は、読込み部54から渡されたデータ内でASCII文字列を検索する(ステップ505)。ここで検索されるASCII文字列は、検査処理部55が文字列記憶部57から読み込んだものである。そして、検索が成功したかどうかを判定し(ステップ506)、検索が成功していれば、検査処理部55は、ASCII文字列の次の文字列が特定文字列であるかどうかを判定する(ステップ507)。ここで比較対象となる特定文字列は、検査処理部55が文字列記憶部57から読み込んだものである。
その結果、次の文字列が特定文字列であれば、検査処理部55は、文字化けは発生していないと判断する(ステップ508)。そして、その旨の情報と、今回検査した箇所の情報とを出力部56に伝える。これにより、出力部56は、文字化けでない旨と、検査対象箇所の情報とを出力する(ステップ509)。
一方、次の文字列が特定文字列でなければ、検査処理部55は、文字化けが発生していると判断する(ステップ510)。そして、その旨の情報と、今回検査した箇所の情報とを出力部56に伝える。これにより、出力部56は、文字化けである旨と、検査対象箇所の情報とを出力する(ステップ511)。
尚、この動作例では、ASCII文字列が検索された検査対象箇所ごとに、文字化けであるかどうかの情報と検査対象箇所の情報とを出力するようにした。しかしながら、文字化けである場合だけこれらの情報を出力するようにしてもよい。また、検査対象箇所の情報は出力せず、文字化けの発生に関する情報(例えば、文字化けの発生頻度等)のみを出力するようにしてもよい。
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図8は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)10aと、M/B(マザーボード)チップセット10bを介してCPU10aに接続されたメインメモリ10cと、同じくM/Bチップセット10bを介してCPU10aに接続された表示機構10dとを備える。また、M/Bチップセット10bには、ブリッジ回路10eを介して、ネットワークインターフェイス10fと、磁気ディスク装置(HDD)10gと、音声機構10hと、キーボード/マウス10iと、フレキシブルディスクドライブ10jとが接続されている。
尚、図8において、各構成要素は、バスを介して接続される。例えば、CPU10aとM/Bチップセット10bの間や、M/Bチップセット10bとメインメモリ10cの間は、CPUバスを介して接続される。また、M/Bチップセット10bと表示機構10dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構10dがPCI Express対応のビデオカードを含む場合、M/Bチップセット10bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路10eと接続する場合、ネットワークインターフェイス10fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置10gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス10i、及び、フレキシブルディスクドライブ10jについては、USB(Universal Serial Bus)を用いることができる。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上述べたように、本実施の形態では、ASCII文字列とそれに続く文字化けし易い特定文字列とを入力ファイルに付加しておき、出力ファイルでは、ASCII文字列に続く文字が特定文字列のままであるかどうかに基づいて、文字化けを検出するようにした。このような構成により、入力ファイルに簡単な細工を行うだけで、アプリケーションの出力データのみから効率よく文字化けを検出できるようになった。
本発明の実施の形態におけるシステム構成の一例を示した図である。 本発明の実施の形態におけるシステム構成の別の例を示した図である。 本発明の実施の形態における文字化けの検出の概要を示した図である。 本発明の実施の形態における文字列付加装置の構成例を示したブロック図である。 本発明の実施の形態における文字列付加装置の動作例を示したフローチャートである。 本発明の実施の形態における文字化け検出装置の構成例を示したブロック図である。 本発明の実施の形態における文字化け検出装置の動作例を示したフローチャートである。 本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
符号の説明
10…文字列付加装置、20…アプリケーション実行装置、30…応答入力装置、40…データベース、50…文字化け検出装置

Claims (10)

  1. 特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための装置であって、
    ASCII文字列とそれに続く前記特定の言語に固有の特定文字列とを含む入力データに基づく前記アプリケーションの動作に応じて出力された出力データを取得する取得部と、
    前記取得部により取得された前記出力データにおいて前記ASCII文字列に続く文字列と、前記入力データに含まれる前記特定文字列との比較結果に基づいて、当該出力データにおける文字化けの発生を認識する認識部と
    を備えた、装置。
  2. 前記ASCII文字列は、前記出力データに通常出現しない文字列であり、
    前記特定文字列は、前記アプリケーションを作成するのに用いられたプログラミング言語、又は、前記アプリケーションが動作する環境によって、文字化けし易いと判断される文字列である、請求項1の装置。
  3. 前記取得部は、前記出力データが通信回線を介して送信される場合に、当該通信回線を介したデータ通信を監視することにより当該出力データを取得する、請求項1の装置。
  4. 前記取得部は、前記アプリケーションから出力されたデータに基づく操作者の操作又はプログラムの動作により生成されたデータを、前記出力データとして取得する、請求項1の装置。
  5. 前記取得部により取得された前記出力データにおいて前記ASCII文字列に続く文字列と、前記入力データに含まれる前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報を出力する出力部を更に備えた、請求項1の装置。
  6. 前記取得部により取得された前記出力データにおいて前記ASCII文字列に続く文字列と、前記入力データに含まれる前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報と、当該文字化けが発生している箇所に関する情報とを出力する出力部を更に備えた、請求項1の装置。
  7. 特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための方法であって、
    ASCII文字列とそれに続く前記特定の言語に固有の特定文字列とを入力データに付加するステップと、
    前記入力データに基づいて前記アプリケーションを動作させるステップと、
    前記アプリケーションの動作に応じて出力された出力データにおいて前記ASCII文字列に続く文字列と、予め所定の記憶手段に記憶された前記特定文字列とを照合することにより、当該出力データにおける文字化けの発生を認識するステップと
    を含む、方法。
  8. 前記アプリケーションの動作に応じて出力された前記出力データにおいて前記ASCII文字列に続く文字列と、前記所定の記憶手段に記憶された前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報と、当該文字化けが発生している箇所に関する情報とを出力するステップを更に含む、請求項7の方法。
  9. 特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するためのプログラムであって、
    コンピュータに、
    ASCII文字列とそれに続く前記特定の言語に固有の特定文字列とを含む入力データに基づく前記アプリケーションの動作に応じて出力された出力データを取得する機能と、
    前記出力データにおいて前記ASCII文字列に続く文字列と、前記入力データに含まれる前記特定文字列との比較結果に基づいて、当該出力データにおける文字化けの発生を認識する機能と
    を実現させる、プログラム。
  10. 前記ASCII文字列は、前記出力データに通常出現しない文字列であり、
    前記特定文字列は、前記アプリケーションを作成するのに用いられたプログラミング言語、又は、前記アプリケーションが動作する環境によって、文字化けし易いと判断される文字列である、請求項9のプログラム。
JP2007021874A 2007-01-31 2007-01-31 文字化けを検出するための装置、方法、及びプログラム Expired - Fee Related JP4363533B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007021874A JP4363533B2 (ja) 2007-01-31 2007-01-31 文字化けを検出するための装置、方法、及びプログラム
US12/015,605 US20080181504A1 (en) 2007-01-31 2008-01-17 Apparatus, method, and program for detecting garbled characters

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007021874A JP4363533B2 (ja) 2007-01-31 2007-01-31 文字化けを検出するための装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2008186417A JP2008186417A (ja) 2008-08-14
JP4363533B2 true JP4363533B2 (ja) 2009-11-11

Family

ID=39668053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007021874A Expired - Fee Related JP4363533B2 (ja) 2007-01-31 2007-01-31 文字化けを検出するための装置、方法、及びプログラム

Country Status (2)

Country Link
US (1) US20080181504A1 (ja)
JP (1) JP4363533B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5728138B1 (ja) * 2014-04-18 2015-06-03 楽天株式会社 メール送信装置、メール送信方法、記録媒体およびプログラム
JP5713138B1 (ja) 2014-09-12 2015-05-07 富士ゼロックス株式会社 仮想計算機システム、プリンタ制御システム、仮想計算機プログラム及びプリンタ制御プログラム
US10402392B2 (en) 2016-03-03 2019-09-03 International Business Machines Corporation Identifying corrupted text segments
CN110728111B (zh) * 2018-07-17 2024-06-25 珠海金山办公软件有限公司 一种文档内容的乱码修复方法、装置、终端设备和服务器
CN110245231B (zh) * 2019-05-16 2023-01-20 创新先进技术有限公司 一种针对乱码的训练样本特征提取方法、装置及设备
CN112329445B (zh) * 2020-11-19 2024-07-23 北京明略软件系统有限公司 乱码判断方法、系统、信息抽取方法及信息抽取系统
CN114492311B (zh) * 2021-12-21 2024-08-06 成都鲁易科技有限公司 乱码数据的识别方法、装置、存储介质及计算机设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5309358A (en) * 1992-02-18 1994-05-03 International Business Machines Corporation Method for interchange code conversion of multi-byte character string characters
US5748807A (en) * 1992-10-09 1998-05-05 Panasonic Technologies, Inc. Method and means for enhancing optical character recognition of printed documents
JP4196984B2 (ja) * 2005-10-19 2008-12-17 村田機械株式会社 インターネットファクシミリ装置

Also Published As

Publication number Publication date
US20080181504A1 (en) 2008-07-31
JP2008186417A (ja) 2008-08-14

Similar Documents

Publication Publication Date Title
JP4363533B2 (ja) 文字化けを検出するための装置、方法、及びプログラム
JP4143661B2 (ja) テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム
CN107783899B (zh) 应用程序中h5页面的测试方法、装置和计算机设备
CN109710508B (zh) 测试方法、测试装置、测试设备及计算机可读存储介质
EP0548251B1 (en) Method and system for matching the software command language of a computer with the printer language of a printer
US9158742B2 (en) Automatically detecting layout of bidirectional (BIDI) text
US8264385B1 (en) Using error bucketing and baseline analysis for I18N testing
US20040202352A1 (en) Enhanced readability with flowed bitmaps
CN107797917B (zh) 性能测试脚本生成方法及装置
US20050183033A1 (en) Apparatus and methods for displaying dialog box text messages including languages having different reading orders
US8165869B2 (en) Learning word segmentation from non-white space languages corpora
US20040205463A1 (en) Apparatus, program, and method for summarizing textual data
CN115509413A (zh) 显示方法、装置、词典笔、电子设备和存储介质
US20100095279A1 (en) Method for automatically testing menu items of application software
CN112136136A (zh) 输入错误检测装置、输入错误检测方法及输入错误检测程序
CN110321271B (zh) 基于Monkey获取异常信息的方法、装置、设备及存储介质
JP4835791B2 (ja) Gui評価システム、gui評価方法およびgui評価用プログラム
JP2009199172A (ja) 情報処理システム、プログラム中の類似箇所特定方法、及びプログラム
US12019975B1 (en) Automatic webpage layout checker: 5D deep learning based on unique rules for coloring web component borders and non-space
US12166935B2 (en) Information processing apparatus and non-transitory computer readable medium storing information processing program without displaying screen for setting step of target image separately from screen for operation step of target image
JP7534865B2 (ja) テスト自動化装置
JP7206644B2 (ja) 文字認識装置、文字認識方法、及びプログラム
JP4864811B2 (ja) エラー情報収集装置、方法及びプログラム
JP5380145B2 (ja) 画像形成装置及びステータスページ評価プログラム
JP2015069334A (ja) 文字変換プログラム、文字変換装置、及び文字変換方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090626

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090626

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090727

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090804

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090811

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees