【发布时间】:2021-05-10 15:05:38
【问题描述】:
根据它的源代码https://www.rubydoc.info/stdlib/core/Integer:chr,如果没有提供参数,则此方法使用ASCII编码,实际上,带参数和不带参数调用时会给出不同的结果:
irb(main):002:0* 255.chr
=> "\xFF"
irb(main):003:0' 255.chr 'utf-8'
=> "ÿ"
为什么会这样?默认情况下,Ruby 不应该在任何地方都使用 UTF-8 吗?至少所有字符串似乎都是用 UTF-8 编码的:
irb(main):005:0> "".encoding
=> #<Encoding:UTF-8>
【问题讨论】:
标签: ruby utf-8 character-encoding ascii