Ruby 1.8和1.9字符串差异

Den*_*nis 2 ruby

如何获取在ruby 1.8(字节)和1.9(字符)中都起作用的字符串的第一个字符?

Dig*_*oss 5

这应该做到......

s[0,1]
Run Code Online (Sandbox Code Playgroud)

这将返回1.8中的第一个字节和1.9中的第一个字符,但在每种情况下结果都是一个String.

如果你想要两者中的第一个UTF-8字符序列,这很棘手.正则表达式引擎是1.8中的一个具有UTF-8感知的位置,因此您可以使用:

s[/./u]
Run Code Online (Sandbox Code Playgroud)


int*_*iot 5

另一种解决方案

"string"[0].chr # => 's'
Run Code Online (Sandbox Code Playgroud)