我正在使用Ruby - Cucumber进行自动化。
我正在尝试将日语字符作为参数发送到用户定义的函数以在db。中验证。
以下是我使用的声明: x = $ objDB.run_select_query_verifyText('从xxxx中选择名称,其中id = 1','ごせり槎ゃぱ')
在run_select_query_verifyText()函数中,我有连接db的代码并从db获取记录,它将验证作为参数传递的文本(日语字符)
如果字符串与DB中的表数据匹配,则返回true,否则返回false。
但我总是假的,我发现日语字符串转换为“??????”同时比较数据。
注意:我的程序与英语字符一起正常工作。
答案 0 :(得分:2)
您的问题最有可能是字符编码。数据库以与您正在使用的Ruby字符串不同的编码返回内容。您需要弄清楚db编码是什么,并确保两者都相同。
如果您使用的是ruby 1.9,则可以使用yourstring.encoding
检查编码当前编码并将其更改为例如带有yourstring.encode("UTF-8")
的UTF-8。
如果你使用ruby 1.8,那么事情就会变得更棘手,因为String类本身不支持编码。你可以用例如character-encodings宝石可以解决这个问题。