Ruby Strings只是一系列Unicode字符吗?如果是,那么具体的编码例如是UTF-8等吗?
答案 0 :(得分:5)
String
的默认编码与源文件相同。
源文件的默认编码是Ruby 2.0或更高版本中的UTF-8,或Ruby 1.9或更早版本中的US-ASCII。您可以通过添加
来指定编码# encoding: utf-8
在源文件的开头。
答案 1 :(得分:2)
默认情况下,Ruby字符串确实是UTF-8,可由the String#encoding
method验证:
llama@llama:~$ irb
irb(main):001:0> 'foo'.encoding
=> #<Encoding:UTF-8>
您可以获取可用编码列表via Encoding::list
:
irb(main):002:0> Encoding.list
=> [#<Encoding:ASCII-8BIT>, #<Encoding:UTF-8>, #<Encoding:US-ASCII>, (etc...)]
并更改字符串with String#force_encoding
的编码:
irb(main):003:0> 'foo'.force_encoding(Encoding::US_ASCII).encoding
=> #<Encoding:US-ASCII>