Ruby Strings的编码是什么?

时间:2014-12-18 00:19:50

标签: ruby string encoding

Ruby Strings只是一系列Unicode字符吗?如果是,那么具体的编码例如是UTF-8等吗?

2 个答案:

答案 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>