ruby-on-rails - 在 Rspec 测试中处理非 ascii 字符

标签 ruby-on-rails ruby rspec rspec2

我正在使用 Ruby 1.9.3 的 DocSplit gem 来创建 Word 文档的 Unicode UTF-8 版本。令我惊讶的是,今天当我对其中一个文档的特定部分进行测试时,我开始遇到字符编码不一致的问题。

我已经尝试了多种不同的方法来解决我将在下面列出的问题,但到目前为止我取得的最大成功是删除所有非 ASCII 字符。这远非理想,因为我不认为角色在数据库中真的会成为所有问题。

gsub(/[^[:ascii:]]/, "")

这是我的输出结果与我的预期结果的示例:

My CODES'S APOSTROPHE

My CODES’S APOSTROPHE

第二个撇号应该看起来是波浪形的。如果将其粘贴到 irb 中,则会得到以下内容:\U+FFE2

我专门为这个角色尝试了正则表达式,它似乎适用于 Rubular。然而,当我将它放入我的模型中时,我遇到了语法错误。

syntax error, unexpected $end, expecting ')'
raw_title = raw_title.gsub(/’/, "")

我也试过强制编码为 UTF-8,但所有内容都已经是 UTF-8,这似乎没有效果。我尝试强制输出为 US-ASCII,但出现字节序列错误。

我还尝试了一些在 Ruby 库中找到的编码选项。这些基本上与正则表达式做了同样的事情。

这一切都归结为我正在尝试匹配输出以进行测试。我什至应该关心这些特殊字符吗?有没有更好的方法来匹配这些字符而不盲目删除它们?

最佳答案

尝试添加:

# encoding: utf-8

在失败的 rspec 文件的顶部。这应该确保:

raw_title = raw_title.gsub(/’/, "")

在您的规范工作中。

关于ruby-on-rails - 在 Rspec 测试中处理非 ascii 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12596546/

相关文章:

ruby-on-rails - Rails 中的 collection_check_boxes 从表单中获取结果

ruby - 如何在 rspec 中的测试类中实例化 stub 类

ruby-on-rails - RSpec 无法在模块内找到类

ruby-on-rails - 如何使延迟的工作依赖于另一项工作?

ruby-on-rails - 用于rails应用程序的way2sms API

javascript - javascript 和 ruby​​ 整数之间的区别(使用左移按位运算符)

ruby - 在 Rails 4 中写入流时如何使用 Rspec 和 ActionController::Live 进行测试?

ruby-on-rails - 带有erb的Rails : dynamic robots. txt

ruby-on-rails - 让 Gmaps4Rails 与 MongoMapper 一起工作

ruby - 访问 Litmus API 会导致 SSL 错误。有什么办法解决吗?