2

我正在使用 Ruby - Cucumber 进行自动化。

我正在尝试将日文字符作为参数发送给用户定义的函数以在 db 中进行验证。

下面是我使用的语句: x=$objDB.run_select_query_verifyText('select name from xxxx where id=1','ごせり槎ゃぱ')

在 run_select_query_verifyText() 函数中,我有连接 db 并从 db 获取记录的代码,它将验证作为参数传递的文本(日文字符。)

如果字符串与 DB 中的表数据匹配,则此函数返回 true,否则返回 false。

但我总是出错,我发现日文字符串正在转换为“??????” 在比较数据时。

注意:我的程序可以正常使用英文字符。

4

1 回答 1

2

您的问题很可能与字符编码有关。数据库以与您正在使用的 Ruby 字符串不同的编码返回内容。您需要弄清楚 db 编码是什么,并确保两者相同。

如果您使用的是 ruby​​ 1.9,您可以使用 .检查当前编码的编码yourstring.encoding并将其更改为例如 UTF-8 和yourstring.encode("UTF-8"). 如果您使用的是 ruby​​ 1.8,则事情会更加棘手,因为 String 类本身不支持编码。您可以使用例如字符编码gem 来解决这个问题。

于 2012-11-15T09:55:07.137 回答