如果它是ASCII,如何检查字符串?

时间:2010-09-26 11:41:57

标签: ruby-on-rails-3 ruby-1.9

例如:

"ASCII".is_ascii? # => true

"تجربة".is_ascii? # => false

2 个答案:

答案 0 :(得分:49)

有一个内置的Ruby字符串方法适合你。

str.ascii_only? → true or false

对于只包含ASCII字符的字符串,返回true。

"abc".force_encoding("UTF-8").ascii_only?          #=> true
"abc\u{6666}".force_encoding("UTF-8").ascii_only?  #=> false

答案 1 :(得分:6)

如果您的字符串是Unicode(并且他们真的应该,现在),您只需检查所有代码点是否为127或更少。 Unicode的底部128个代码点是ASCII。