JP4363533B2 - 文字化けを検出するための装置、方法、及びプログラム - Google Patents
文字化けを検出するための装置、方法、及びプログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements 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)は、このような外部化の作業を忘れていないかのテストである。
また、英語しか使用しないのであれば通常文字化けは発生しないが、英語以外の言語を使用すると文字化けが発生する場合があるので、(2)のテストを行う必要がある。
更に、ボタン等のオブジェクトに表示する文字列が、同じ意味であっても言語によって長さが異なる場合がある。このような場合、英語では文字列全体がオブジェクトに表示されたとしても、英語以外の言語では文字列がオブジェクトに一部しか表示されないことも考えられる。そこで、(3)のテストが必要になってくる。
しかも、国際化検証テストでは、これを非常に多くの環境で行う必要がある。ここでいう環境には、日本語、ドイツ語、ロシア語、簡体字中国語等の言語環境だけでなく、OS(Operating System)の種類や、システムで使用する文字コードの種類等の環境も含まれる。
また、国際化検証テストで確認すべき対象も多岐にわたる。テスト対象のソフトウェアが例えばXMLファイル、CSVファイル、ログファイルを出力する場合には、これら全てのファイルについてテストを行う必要がある。
このようなことから、(1)〜(3)のテストを目視による確認のみで行う方法では、テストを行う者の負担が極めて大きかった。
文字化けとは、元の文字が別の文字(意味不明な記号等)になってしまう現象のことをいう。日本語環境であれば、元の文字がひらがなや漢字等の所謂全角文字の場合に起こる。また、文字化けの原因としては、本来の文字コードと違う文字コードで読んだことや、正しく読むための文字コードが用意されていないこと等がある。
また、文字化けの検出を行う別の方法として、出力されるデータを登録情報と照合することも知られていた(例えば、特許文献2、3参照)。特許文献2では、テキストデータの各文字の文字コードが、現在使用している文字コード系のコード範囲内に収まっているか否かを判定し、これにより文字化けがあると判定された電子メールの読み上げを防止している。また、特許文献3では、印刷データの中で指定されているフォントが印刷時に使用できないものの場合にその指定を使用可能なフォントに置き換えた中間印刷データに変換し、この中間印刷データをRIP展開した場合に得られる文字列が辞書に登録されていない場合にその文字列を文字化けのある箇所として検出している。
更に、文字化けの検出を行う別の方法として、タグセットをアプリケーションデータに付加することも知られていた(例えば、特許文献4参照)。この特許文献4では、アプリケーションデータを出力する装置側では、その所定部分をタグで置き換えて訂正情報付きアプリケーションデータを生成し、これを入力する装置側では、訂正情報付きアプリケーションに含まれるタグセットを認識してアプリケーションデータ中の誤りや文字化けを検出している。
しかしながら、アプリケーションの動作に基づくテストでは、特許文献1のように入力データと出力データとを比較するのは困難であるという問題点があった。一般に、アプリケーションは多くの入力データに基づいて動作し、多くの出力データを出力する。従って、ある出力データの元データがどの入力データであるか特定するのは難しいからである。
また、特許文献2、3のように登録情報との照合を行う方法では、入力データと出力データとの比較は行わなくてよいものの、予め登録可能な情報に基づいて検出可能なタイプの文字化けしか検出できないという問題点があった。
更に、特許文献4の方法には、入力データに対する訂正情報の付加を効率的に行うことにより、文字化けの検出をより効率的に行えるようになるという点で、更なる改善の余地がある。
また、取得部により取得された出力データにおいてASCII文字列に続く文字列と、入力データに含まれる特定文字列とが異なる場合に、出力データにおいて文字化けが発生している旨の情報を出力する出力部を備えてもよい。
更に、取得部により取得された出力データにおいてASCII文字列に続く文字列と、入力データに含まれる特定文字列とが異なる場合に、出力データにおいて文字化けが発生している旨の情報と、文字化けが発生している箇所に関する情報とを出力する出力部を備えてもよい。
図1は、本実施の形態におけるシステム構成の一例を示したブロック図である。
図示するように、このシステム構成例は、テスト対象のアプリケーション(以下、単に「アプリケーション」という)への入力データに対し、文字化け検出のための文字列を付加する文字列付加装置10と、文字列が付加された入力データに基づいてアプリケーションを実行するアプリケーション実行装置20とを含む。また、アプリケーションが実行されることによって出力された情報に対する応答を入力する応答入力装置30と、アプリケーションが実行されることによって出力されたデータを蓄積するデータベース40とを含む。更に、アプリケーションが実行されることによって出力された出力データ等から文字化けを検出する文字化け検出装置50を含む。尚、本実施の形態では、アプリケーションとして、日本語を使用するものを想定しており、これが日本語環境で正しく動作するかどうかをテストするものとする。
次に、アプリケーションが動作する環境によって文字化けし易いと判断できる文字の例を挙げる。例えば、Windows(登録商標)のようにシフトJISを日本語の文字コードとして使用するプラットフォームで動作するアプリケーションについては、2バイト目が“5c”である「構」、「ソ」、「チ」等の文字が考えられる。また、ドイツ語やフランス語のようなヨーロッパ系の言語では、ASCII文字に含まれないアクセントのついた文字が考えられる。このような文字は、UTF−8(UCS Transformation Format - 8)で2バイトもしくは3バイトとしてマッピングされているので、コード変換を行わずに出力してしまうと文字化けしてしまう場合があるからである。
図示するように、このシステム構成例も、図1のシステム構成例と同様、アプリケーションへの入力データに対し、文字化け検出のための文字列を付加する文字列付加装置10と、文字列が付加された入力データに基づいてアプリケーションを実行するアプリケーション実行装置20とを含む。また、アプリケーションが実行されることによって出力された情報に対する応答を入力する応答入力装置30と、アプリケーションが実行されることによって出力されたデータを蓄積するデータベース40とを含む。更に、アプリケーションが実行されることによって出力された出力データ等から文字化けを検出する文字化け検出装置50を含む。
図3は、文字化け検出の流れを説明するための図である。
図示するように、まず、文字化け検出モニタは、文字化け検出のための文字列として「Qc+[-}TiLs構ソチ」が挿入されたストリングストリームを走査し、このうちのASCII文字列の部分である「Qc+[-}TiLs」を発見する。次に、文字化け検出モニタは、このASCII文字列「Qc+[-}TiLs」の直後が、事前に決めておいた文字化けし易い特定文字列である「構ソチ」であるかどうかを判定する。その結果、直後が「構ソチ」であれば、左下向きの矢印で示すように、文字化けしていないと判定し、直後が「構ソチ」でなければ、右下向きの矢印で示すように、文字化けしていると判定する。
<文字列の付加>
まず、文字列の付加を行う文字列付加装置10について説明する。
図4は、本実施の形態における文字列付加装置10の構成例を示したブロック図である。
図示するように、文字列付加装置10は、送受信部11と、ファイル記憶部12と、指定受付部13と、読込み部14と、付加処理部15と、書出し部16と、付加規則記憶部17と、文字列記憶部18とを備える。
ファイル記憶部12は、送受信部11が受信したファイルや、送受信部11が送信する対象となるファイル(文字列を付加した後のファイル)を記憶する。
読込み部14は、指定受付部13で受け付けた指定で特定されるファイルをファイル記憶部12から読み込む。
付加処理部15は、読込み部14が読み込んだファイルに対し、文字列を付加する際の規則(以下、「付加規則」という)に従い、文字列を付加する。
書出し部16は、付加処理部15により文字列が付加されたファイルをファイル記憶部12に書き戻す。
図5は、文字列付加装置10の動作例を詳述したフローチャートである。尚、ここでは、アプリケーションへの入力ファイルに文字列を付加するものとする。また、文字列を付加する対象の幾つかのファイルを送受信部11が受信してファイル記憶部12がそのファイルを記憶しているものとする。
文字列付加装置10では、まず、指定受付部13が、文字列を付加する対象となる入力ファイルの指定を受け付ける(ステップ101)。指定受付部13は、指定された入力ファイルを特定する情報を読込み部14に受け渡し、読込み部14は、指定された入力ファイルをファイル記憶部12から読み込む(ステップ102)。これにより、読み込まれた入力ファイルは、付加処理部15が利用するメモリに展開される。
その後、付加処理部15は、メモリに展開された入力ファイルを走査し、付加規則によって文字列を付加すべき箇所として定義された箇所を検索する(ステップ105)。そして、検索が成功したかどうかを判定し(ステップ106)、検索が成功していれば、検索された箇所に、ステップ104で読み込んだ文字列を挿入する(ステップ107)。そして、ステップ105に戻り、文字列を付加する箇所の検索及び文字列の挿入をステップ106での判定結果が「No」となるまで繰り返す。ステップ106での判定結果が「No」となれば、文字列を付加すべき箇所はそれ以上ないので、文字列の付加は終了し、ファイルをファイル記憶部12に書き戻す(ステップ108)。
次に、文字化けを検出する文字化け検出装置50について説明する。
図6は、本実施の形態における文字化け検出装置50の構成例を示したブロック図である。
図示するように、文字化け検出装置50は、受信部51と、ファイル記憶部52と、計時部53と、読込み部54と、検査処理部55と、出力部56と、文字列記憶部57とを備える。
ファイル記憶部52は、受信部51が受信した検査対象のファイルを記憶する。
読込み部54は、計時部53からの指示に従い、前回の動作以降に更新されたファイルの更新された部分をファイル記憶部52から読み込む。
検査処理部55は、読込み部54が読み込んだファイルの部分に対し、文字化けしていないかどうかの検査を行う。本実施の形態において、検査処理部55は、文字化けの発生を認識する認識手段の一例と考えることができる。
出力部56は、検査処理部55による検査の結果を出力する。ここでの出力は、例えば、文字化け検出装置50が有するディスプレイへの表示であってもよいし、文字化け検出装置50に接続されたプリンタに対する印刷であってもよい。
文字列記憶部57は、文字化けを検出ために用意された文字列を記憶する。ここで記憶する文字列は、文字列付加装置10の文字列記憶部18に記憶されたものと同じものである。即ち、ASCII文字列と文字化けし易い特定文字列とからなる、例えば、「Qc+[-}TiLs構ソチ」といった文字列である。但し、この文字列は、文字列記憶部57に記憶させるのではなく、検査処理部55の処理を実行するプログラム内に直接記述するようにしてもよい。
図7は、文字化け検出装置50の動作例を詳述したフローチャートである。尚、ここでは、アプリケーションからの出力ファイルにおいて文字化けを検出するものとする。また、受信部51がアプリケーションからの出力ファイルを受信してファイル記憶部52がそのファイルを記憶した状態で、計時部53が読込み部54に動作の開始を指示したものとする。
動作の開始が指示されると、読込み部54は、前回の動作以降に生成された出力ファイルをファイル記憶部52から検索する(ステップ501)。そして、検索が成功したかどうかを判定し(ステップ502)、検索が成功していれば、前回の動作以降に出力されたデータをそのファイル内で検索する(ステップ503)。そして、検索が成功したかどうかを判定し(ステップ504)、検索が成功していれば、読込み部54は、そのデータを読み込んで検査処理部55に受け渡す。尚、ステップ502で検索が失敗した場合は、前回の動作以降に生成された出力ファイルはないので、処理は終了する。また、ステップ504で検索が失敗した場合は、前回の動作以降に出力されたデータがその出力ファイル内にないので、その出力ファイルについての処理を終了し、ステップ501に戻って次の出力ファイルについての処理を行う。
その結果、次の文字列が特定文字列であれば、検査処理部55は、文字化けは発生していないと判断する(ステップ508)。そして、その旨の情報と、今回検査した箇所の情報とを出力部56に伝える。これにより、出力部56は、文字化けでない旨と、検査対象箇所の情報とを出力する(ステップ509)。
一方、次の文字列が特定文字列でなければ、検査処理部55は、文字化けが発生していると判断する(ステップ510)。そして、その旨の情報と、今回検査した箇所の情報とを出力部56に伝える。これにより、出力部56は、文字化けである旨と、検査対象箇所の情報とを出力する(ステップ511)。
Claims (10)
- 特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための装置であって、
ASCII文字列とそれに続く前記特定の言語に固有の特定文字列とを含む入力データに基づく前記アプリケーションの動作に応じて出力された出力データを取得する取得部と、
前記取得部により取得された前記出力データにおいて前記ASCII文字列に続く文字列と、前記入力データに含まれる前記特定文字列との比較結果に基づいて、当該出力データにおける文字化けの発生を認識する認識部と
を備えた、装置。 - 前記ASCII文字列は、前記出力データに通常出現しない文字列であり、
前記特定文字列は、前記アプリケーションを作成するのに用いられたプログラミング言語、又は、前記アプリケーションが動作する環境によって、文字化けし易いと判断される文字列である、請求項1の装置。 - 前記取得部は、前記出力データが通信回線を介して送信される場合に、当該通信回線を介したデータ通信を監視することにより当該出力データを取得する、請求項1の装置。
- 前記取得部は、前記アプリケーションから出力されたデータに基づく操作者の操作又はプログラムの動作により生成されたデータを、前記出力データとして取得する、請求項1の装置。
- 前記取得部により取得された前記出力データにおいて前記ASCII文字列に続く文字列と、前記入力データに含まれる前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報を出力する出力部を更に備えた、請求項1の装置。
- 前記取得部により取得された前記出力データにおいて前記ASCII文字列に続く文字列と、前記入力データに含まれる前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報と、当該文字化けが発生している箇所に関する情報とを出力する出力部を更に備えた、請求項1の装置。
- 特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するための方法であって、
ASCII文字列とそれに続く前記特定の言語に固有の特定文字列とを入力データに付加するステップと、
前記入力データに基づいて前記アプリケーションを動作させるステップと、
前記アプリケーションの動作に応じて出力された出力データにおいて前記ASCII文字列に続く文字列と、予め所定の記憶手段に記憶された前記特定文字列とを照合することにより、当該出力データにおける文字化けの発生を認識するステップと
を含む、方法。 - 前記アプリケーションの動作に応じて出力された前記出力データにおいて前記ASCII文字列に続く文字列と、前記所定の記憶手段に記憶された前記特定文字列とが異なる場合に、当該出力データにおいて文字化けが発生している旨の情報と、当該文字化けが発生している箇所に関する情報とを出力するステップを更に含む、請求項7の方法。
- 特定の言語を使用するアプリケーションの動作に応じて発生する文字化けを検出するためのプログラムであって、
コンピュータに、
ASCII文字列とそれに続く前記特定の言語に固有の特定文字列とを含む入力データに基づく前記アプリケーションの動作に応じて出力された出力データを取得する機能と、
前記出力データにおいて前記ASCII文字列に続く文字列と、前記入力データに含まれる前記特定文字列との比較結果に基づいて、当該出力データにおける文字化けの発生を認識する機能と
を実現させる、プログラム。 - 前記ASCII文字列は、前記出力データに通常出現しない文字列であり、
前記特定文字列は、前記アプリケーションを作成するのに用いられたプログラミング言語、又は、前記アプリケーションが動作する環境によって、文字化けし易いと判断される文字列である、請求項9のプログラム。
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)
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)
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 | 村田機械株式会社 | インターネットファクシミリ装置 |
-
2007
- 2007-01-31 JP JP2007021874A patent/JP4363533B2/ja not_active Expired - Fee Related
-
2008
- 2008-01-17 US US12/015,605 patent/US20080181504A1/en not_active Abandoned
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 |