2

自動化にRuby-Cucumberを使用しています。

データベースで検証するために、日本語の文字をパラメーターとしてユーザー定義関数に送信しようとしています。

以下は私が使用したステートメントです: x=$objDB.run_select_query_verifyText('select name from xxxx where id=1','ごせり槎ゃぱ')

run_select_query_verifyText() 関数には、db に接続して db からレコードを取得するコードがあり、パラメーターとして渡されるテキスト (日本語の文字) を検証します。

この関数は、文字列が DB のテーブル データと一致する場合は true を返し、それ以外の場合は false を返します。

しかし、私は常にfalseになっており、日本語の文字列が「??????」として変換されていることがわかりました データを比較しながら。

注: 私のプログラムは英語の文字で正常に動作しています。

4

1 に答える 1

2

あなたの問題は、文字エンコーディングにある可能性が最も高いです。データベースは、使用している Ruby 文字列とは異なるエンコーディングでコンテンツを返します。データベースエンコーディングが何であるかを把握し、両方が同じであることを確認する必要があります。

ruby 1.9 を使用している場合は、現在のエンコーディングを で確認し、yourstring.encodingたとえば で UTF-8 に変更できyourstring.encode("UTF-8")ます。Ruby 1.8 を使用している場合は、String クラスがエンコーディングをネイティブにサポートしていないため、もう少し注意が必要です。これを回避するには、たとえばcharacter-encodings gem を使用できます。

于 2012-11-15T09:55:07.137 に答える