首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby不尊重#编码规范

Ruby不尊重#编码规范
EN

Stack Overflow用户
提问于 2022-08-12 09:37:47
回答 1查看 26关注 0票数 1

给定以下脚本(必须在自己的文件中):

代码语言:javascript
复制
#!/usr/bin/env ruby

# encoding: binary

s = "\xe1\xe7\xe6\x07\x00\x01\x00"
puts s.encoding

它的输出是"UTF-8“。为什么不是二进制(ASCI-8bit)?

EN

回答 1

Stack Overflow用户

发布于 2022-08-12 09:37:47

因为# encoding: binary必须紧跟在#!/usr/bin/env ruby之后。或者,如果没有#!/usr/bin/env ruby行,则必须位于文件的第一行。

当空白行被删除时(即编码规范在第二行上):

代码语言:javascript
复制
#!/usr/bin/env ruby
# encoding: binary

s = "\xe1\xe7\xe6\x07\x00\x01\x00"
puts s.encoding

...the输出为“ASCI-8bit”。

这里有一个链接,指向Ruby文档中有关诸如编码之类的神奇注释(感谢Stefan在评论中提到了这一点):

https://ruby-doc.org/core-3.1.2/doc/syntax/comments_rdoc.html#label-Magic+Comments

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73332132

复制
相关文章

相似问题

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