ruby - 如何替换 Ruby 1.9 上的 Unicode gem?

标签 ruby unicode gem ruby-1.9

不幸的是,Unicode 0.1(sudo gem install unicode)不能在 Ruby 1.9 上运行。我有以下片段:

require "rubygems"
require "unicode"

str = "áéíóúç"
Unicode.normalize_KD(str).gsub(/[^\x00-\x7F]/n, "")
#=> aeiouc

我用它来将标题转换为永久链接,而不删除重音字符。

有没有办法使用packunpack 方法转换此类文本?

最佳答案

更新:更好的选择可能是使用 gem unicode_utils这是专门为这些缺失的功能创建的:

require "unicode_utils"
UnicodeUtils.nfkd("áéíóúç").gsub(/[^\x00-\x7F]/,'').to_s
#=> "aeiouc"

您是否可以依赖 Rails 的 ActiveSupport?然后您可以执行以下操作:

require "activesupport"
mb_str = ActiveSupport::Multibyte::Chars.new("áéíóúç")
mb_str.normalize(:kd).gsub(/[^\x00-\x7F]/,'').to_s
#=> "aeiouc"

ActiveSupport::Multibyte 是为了给 Ruby 1.8 带来 UTF-8/Unicode 支持而编写的,但在 1.9 中也能正常工作。您也许可以借用一些 the code如果您不想将其作为外部依赖项。

关于ruby - 如何替换 Ruby 1.9 上的 Unicode gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1322856/

相关文章:

ruby - 如何检查 ruby​​ 方法中可选参数的默认值是多少?

ruby - 在 StockChart (highchart) 中以编程方式显示柱形图的工具提示

ruby-on-rails - Rails 声誉系统

ruby-on-rails - Bundle Install 无法从 https ://rubygems. org/获取规范

ruby-on-rails - RubyMine/IDEA ruby​​ 调试器无法在 bundle 模式下加载 linecache gem

ruby-on-rails - 如何在服务器启动时运行 capistrano 任务?

ruby - Action Controller ::未知格式

python - 安装 win_unc 库时出现 unicode 错误

asp.net - 在 ASP.NET WebService 中接受 UTF-8 编码的字符串

ruby-on-rails - 为什么 Nginx 一直返回 301?