相关疑难解决方法(0)

如何在Ruby中替换重音拉丁字符?

我有一个ActiveRecord模型,Foo有一个name字段.我希望用户能够按名称搜索,但我希望搜索忽略大小写和任何重音.因此,我还存储了一个canonical_name要搜索的字段:

class Foo
  validates_presence_of :name

  before_validate :set_canonical_name

  private

  def set_canonical_name
    self.canonical_name ||= canonicalize(self.name) if self.name
  end

  def canonicalize(x)
    x.downcase.  # something here
  end
end
Run Code Online (Sandbox Code Playgroud)

我需要填写"这里的东西"来替换重音字符.还有什么比这更好的了

x.downcase.gsub(/[àáâãäå]/,'a').gsub(/æ/,'ae').gsub(/ç/, 'c').gsub(/[èéêë]/,'e')....
Run Code Online (Sandbox Code Playgroud)

而且,就此而言,由于我不在Ruby 1.9上,我不能将这些Unicode文字放在我的代码中.实际的正则表达式看起来会更加丑陋.

ruby unicode activerecord ruby-on-rails utf-8

70
推荐指数
7
解决办法
4万
查看次数

在Java中将UTF-8转换为ISO-8859-1 - 如何将其保持为单字节

我试图将UTF-8中编码的字符串转换为ISO-8859-1.比如说,在字符串'âabcd''中,在ISO-8859-1中表示为E2.在UTF-8中,它表示为两个字节.C3 A2我相信.当我执行getbytes(编码)然后使用ISO-8859-1编码中的字节创建一个新字符串时,我得到两个不同的字符.¢?.有没有其他方法可以做到这一点,以保持角色相同,即âabcd?

java utf-8 iso-8859-1

60
推荐指数
3
解决办法
28万
查看次数

标签 统计

utf-8 ×2

activerecord ×1

iso-8859-1 ×1

java ×1

ruby ×1

ruby-on-rails ×1

unicode ×1