[sisyphus] ужас. В ruby сломался первый символ прочитанного файла. BOM!

Michael Bykov m.bykov на gmail.com
Чт Сен 20 23:53:08 MSK 2012


19 сентября 2012 г., 16:29 пользователь Michael Bykov
<m.bykov на gmail.com> написал:
> 19 сентября 2012 г., 16:03 пользователь Maxim Barnash
> <rebarned на gmail.com> написал:
>> 1.9.3p194 :001 > f = open 'config.ru'
>>  => #<File:config.ru>
>> 1.9.3p194 :002 > l = []; File.foreach(f) {|ln| l << ln.split('')}
>>  => nil
>> 1.9.3p194 :003 > l.first.first == '#'
>>  => true
>> 1.9.3p194 :004 > l.first.first
>>  => "#"
>>
>> Что не так? И да, про какие кавычки речь, если первый символ прочитанного
>> файла в Вашем случае — #?
>>
>> Ну не использовать split/join без аргумента, и использовать File#each
>>
>> --
>> Regards,
>> Max Barnash
>
> Ага, и у меня до вчерашнего дня все работало как часы.
>
> И да, не смертельно, обойтись можно. Но неизвестно, где эта зараза еще вылезет.
>
> (Про кавычки речь - я скопировал вывод в консоль. И набрал то же самое
> руками, после ==, т.е  "#" == "#" -> false)
>
>
> --
> М.
>
> http://diglossa.ru
> xmpp://m.bykov@jabber.ru



Оказывается, я поставил себе новый прекрасный emacs24.

И что вы думаете? Он по дефолту мне залепил BOM.

hexdump -n 3 -C ~/web/xxx.txt
00000000  ef bb bf

вот этот ef bb bf - BOM и есть.

это что, они там в Редмондах, с ума все посходили, а Альт такую штуку
пропустил? Или это мне новый Starter Kit такой ляп устроил, скорее
всего.

set-buffer-file-coding-system -> utf-8 исправило положение.

В общем сорри за ложную тревогу.

-- 
М.

http://diglossa.ru
xmpp://m.bykov@jabber.ru


Подробная информация о списке рассылки Sisyphus