无法比较Ruby中的UTF-8 chrs

时间:2012-11-15 09:06:02

标签: ruby cucumber

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

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

以下是我使用的声明: x = $ objDB.run_select_query_verifyText('从xxxx中选择名称,其中id = 1','ごせり槎ゃぱ')

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

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

但我总是假的,我发现日语字符串转换为“??????”同时比较数据。

注意:我的程序与英语字符一起正常工作。

1 个答案:

答案 0 :(得分:2)

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

如果您使用的是ruby 1.9,则可以使用yourstring.encoding检查编码当前编码并将其更改为例如带有yourstring.encode("UTF-8")的UTF-8。 如果你使用ruby 1.8,那么事情就会变得更棘手,因为String类本身不支持编码。你可以用例如character-encodings宝石可以解决这个问题。

相关问题