小编Cac*_*nix的帖子

如何使用gsub替换ruby中的多字节字符?

我在MongoDB中使用Mongoid保存记录时遇到问题,因为它们包含多字节字符.这是字符串:

a="Chris \xA5\xEB\xAE\xDFe\xA5"
Run Code Online (Sandbox Code Playgroud)

我首先将它转换为BINARY然后我gsub就像这样:

a.force_encoding("BINARY").gsub(0xA5.chr,"oo")
Run Code Online (Sandbox Code Playgroud)

......工作正常:

=> "Chris oo\xEB\xAE\xDFeoo"
Run Code Online (Sandbox Code Playgroud)

但似乎我不能使用该chr方法,如果我使用Regexp:

a.force_encoding("BINARY").gsub(/0x....?/.chr,"")
NoMethodError: undefined method `chr' for /0x....?/:Regexp
Run Code Online (Sandbox Code Playgroud)

有同样问题的人吗?

非常感谢...

ruby mongodb ruby-on-rails-3

2
推荐指数
1
解决办法
2117
查看次数

'aws-s3'和'fog'宝石有什么区别?

在主题中:他们是否相互竞争,重叠或相互补充?

谢谢,

佩特罗斯

gem ruby-on-rails amazon-s3 refinerycms fog

1
推荐指数
1
解决办法
1215
查看次数