我正在使用 Ruby - Cucumber 进行自动化。
我正在尝试将日语字符作为参数发送到用户定义的函数以在数据库中进行验证。
以下是我使用过的声明: x=$objDB.run_select_query_verifyText('从 xxxx 中选择名称,其中 id=1','ごせり槎ゃぱ')
在 run_select_query_verifyText() 函数中,我有连接数据库并从数据库获取记录的代码,它将验证作为参数传递的文本(日语字符。)
如果字符串与数据库中的表数据匹配,则此函数返回 true,否则返回 false。
但我总是错误,我发现日语字符串正在转换为“??????”同时比较数据。
注意:我的程序可以很好地处理英文字符。
最佳答案
您的问题很可能与字符编码有关。数据库以与您正在使用的 Ruby 字符串不同的编码返回内容。您需要弄清楚数据库编码是什么并确保两者相同。
如果您使用的是 ruby 1.9,您可以使用 yourstring.encoding
检查当前编码并将其更改为例如UTF-8 与 yourstring.encode("UTF-8")
。
如果您使用的是 ruby 1.8,事情会有点棘手,因为 String 类本身不支持编码。您可以使用例如character-encodings gem 来解决这个问题。
关于ruby - 无法在 Ruby 中比较 UTF-8 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13394275/