首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >默认编码为ASCII-8位

默认编码为ASCII-8位
EN

Stack Overflow用户
提问于 2016-08-22 18:15:26
回答 1查看 143关注 0票数 1

我有以下文件:

代码语言:javascript
复制
# encoding: UTF-8
a = 1 << 7
puts a.chr.encoding

这让我回到了ASCII-8BIT。为什么这不给UTF-8和我所期望的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 18:27:36

chr有一个编码参数,默认为US-ASCII,当char为< 0x80,ASCI-8位用于< 0xff (其中UTF与ASCII相同):

代码语言:javascript
复制
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>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39086164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档