ruby - 无法在 Ruby 中比较 UTF-8 字符

标签 ruby cucumber

我正在使用 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/

相关文章:

html - 将数据和样式循环到特定列表中? ruby /ERB

ruby - 剥离所有 tbody 标签而不毁掉他们的 child

java - Cucumber:场景中的使用文件

java - 由于服务器一旦接受连接就会阻塞,我应该如何一起测试客户端和服务器?

ruby - 了解 Ruby 方法#call

ruby-on-rails - 在同一 View RoR 中的表单之间传递参数

ruby-on-rails - #<Cucumber::Ast::Scenario 的未定义方法 `source_tag_names'(无方法错误)

gradle - cucumber 2.4.0 标签不适用于 Gradle 4.6

ruby - 用于多个字段的自定义 Ruby CSV 转换器

ruby - Sauce labs 使用有意义的名称进行测试