ruby - 文件开头的奇怪字符

标签 ruby parsing unicode character-encoding ascii

我正在编辑的文件开头有奇怪的字符(使用 textmate..) 我不知道它们什么时候出现的,它们在 textmate 中是不可见的,但是我读取文件的脚本变得疯狂了..

这是文件中的前几个字符(如使用 od 命令所见):

0000000 177377 000120 000105 000117 000120 000114 000105 000072

我认为前 2 个不应该存在......也许它们是由一些奇怪的保管箱同步引起的?或者别的什么……但它们往往会再次出现(我还不知道什么时候……)

我的问题:177377 是什么以及在我的 ruby​​ 脚本中删除它的简单方法? 谢谢

最佳答案

000000 177377(十六进制 0x0000FEFF)是一个 byte-order mark ( Material list )。它向消费者表明文件的其余部分在 big-endian UTF-32 encoding 中。 .在您的情况下,这可能不正确,但这就是字节指示的内容。

如何处理它有点棘手。通常,BOM 确实准确地表示了以下数据的编码。检测并跳过它并将后续内容视为本地默认字符集中的内容通常是错误的做法,即使它在这里似乎是正确的。相反,我会尝试找出您的编辑器插入错误 BOM 的原因,以及是否有办法禁用它。

关于ruby - 文件开头的奇怪字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4660006/

相关文章:

ruby-on-rails - 如何从精炼厂主页中删除页面标题 [RAILS]

ruby - 如何使用正则表达式转换 Markdown 样式的链接?

ruby - 格式化程序 'Teamcity::Cucumber::Formatter' 正在使用已弃用的格式化程序 API

json - Haskell、Aeson - 如何调试实例?

python - 我在解析网页中的表格时遇到问题

string - Lua 'plain' string.gsub

java - charset=unicode 是 UTF-8、UTF-16 还是其他?

ruby-on-rails - 使 RoR 嵌套可表示为数组

php - Pdo select 查询以不适当的方式返回列值(unicode 问题)

java - 在 Java 中读取奇怪的 unicode 字符?