我有以下文件:
# encoding: UTF-8
a = 1 << 7
puts a.chr.encoding这让我回到了ASCII-8BIT。为什么这不给UTF-8和我所期望的呢?
发布于 2016-08-22 18:27:36
chr有一个编码参数,默认为US-ASCII,当char为< 0x80,ASCI-8位用于< 0xff (其中UTF与ASCII相同):
65.chr.encoding # => #<Encoding:US-ASCII>
128.chr.encoding # => #<Encoding:ASCII-8BIT>
255.chr.encoding # => #<Encoding:ASCII-8BIT>
256.chr.encoding # => RangeError: 256 out of char range
Encoding.default_internal = Encoding::UTF_8
65.chr.encoding # => #<Encoding:US-ASCII>
255.chr.encoding # => #<Encoding:ASCII-8BIT>
256.chr.encoding # => #<Encoding:UTF-8>
65.chr(Encoding::UTF_8).encoding # => #<Encoding:UTF-8>
128.chr(Encoding::UTF_8).encoding # => #<Encoding:UTF-8>
500.chr(Encoding::UTF_8).encoding # => #<Encoding:UTF-8>https://stackoverflow.com/questions/39086164
复制相似问题