给定以下脚本(必须在自己的文件中):
#!/usr/bin/env ruby
# encoding: binary
s = "\xe1\xe7\xe6\x07\x00\x01\x00"
puts s.encoding它的输出是"UTF-8“。为什么不是二进制(ASCI-8bit)?
发布于 2022-08-12 09:37:47
因为# encoding: binary必须紧跟在#!/usr/bin/env ruby之后。或者,如果没有#!/usr/bin/env ruby行,则必须位于文件的第一行。
当空白行被删除时(即编码规范在第二行上):
#!/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
https://stackoverflow.com/questions/73332132
复制相似问题