странные символы в начале файла - PullRequest
1 голос
/ 11 января 2011

есть странные символы в начале файла, который я редактирую (используя textmate ..) Я не знаю, когда они появились, они невидимы в textmate, но мой скрипт, который читает файл, сходит с ума ..

это первые несколько символов в файле (как видно с помощью команды od):

0000000 177377 000120 000105 000117 000120 000114 000105 000072

первые 2 не должны быть там, я думаю .. возможно, они были вызваны каким-то страннымDropbox синхронизации?Или что-то еще ... но они, как правило, появляются снова (я пока не знаю, когда ..)

Мой вопрос: что это за 177377 и простой способ удалить его в моем скрипте ruby?спасибо

1 Ответ

5 голосов
/ 11 января 2011

000000 177377 (hex 0x0000FEFF) - это знак порядка байтов (BOM). Это указывает потребителям, что остальная часть файла находится в кодировке UTF-32 с прямым порядком байтов . Это может быть не правильно в вашем случае, но это то, что указывают байты.

Что с этим делать, немного сложно. В общем, спецификация действительно точно представляет кодировку следующих данных. Обнаружение и пропуск этого и обработка последующего контента, как если бы он был в вашей локальной кодировке по умолчанию, обычно будет неправильным действием, даже если это кажется правильным здесь. Вместо этого я постараюсь выяснить, почему ваш редактор вставляет неправильную спецификацию и есть ли способ ее отключить.

...