YAML.dump и сохранение русский букв (кириллица)

329 views
Skip to first unread message

Max Lapshin

unread,
Feb 10, 2012, 6:44:44 AM2/10/12
to RubyOnRails to russian
Сохраняем с помощью YAML.dump хеш с русскими словами. Пишется черти че
с binary, а хочется что бы были русские слова в файле.

В гугле, равно как и в нашей рассылке очень грустные выводы:
нереально. Может что поменялось?

Michael Bykov

unread,
Feb 10, 2012, 6:54:08 AM2/10/12
to ror...@googlegroups.com
10 февраля 2012 г. 15:44 пользователь Max Lapshin
<max.l...@gmail.com> написал:
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
>  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror...@googlegroups.com
>  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
>  Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Я yajl использую, даже и не знал про проблемы с кодировками


--
М.

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

Alexander Semyonov

unread,
Feb 10, 2012, 6:58:01 AM2/10/12
to ror...@googlegroups.com
Был гем ya2yaml ещё.



10.02.2012, в 17:44, Max Lapshin <max.l...@gmail.com> написал(а):

Max Lapshin

unread,
Feb 10, 2012, 7:06:00 AM2/10/12
to ror...@googlegroups.com
О, попробую альтернативные варианты.

Сейчас сделал так:

class String
def is_binary_data?
false
end

def yaml_unescape
self.gsub(/\\x([\dA-F]{2})/) {|ch| eval("\"#{ch}\"")}
end
end


YAML.dump(hash).to_s.yaml_unescape

Akzhan Abdulin

unread,
Feb 10, 2012, 7:30:07 AM2/10/12
to ror...@googlegroups.com
YAML обычно конфигуриционный формат только для чтения (приложениями).

Для остального использую yajl-ruby (возможно, с pretty => true).

10 февраля 2012 г. 15:44 пользователь Max Lapshin <max.l...@gmail.com> написал:
Сохраняем с помощью YAML.dump хеш с русскими словами. Пишется черти че

Julik Tarkhanov

unread,
Feb 10, 2012, 8:03:43 AM2/10/12
to ror...@googlegroups.com

On 10 feb 2012, at 13:06, Max Lapshin wrote:

О, попробую альтернативные варианты.

Вообще вопрос не праздный, потому что вот этот тест проходит из коробки

https://github.com/julik/psych/commit/2ea387e2a4c4c3d303ee001709feb45fa9127c09

О каком руби и какой ямле идет речь? syck на 187? psych на 193? psych на 187?
Судя по всему если психу давать строку с православным кодировочным тегом то он как бы сериализует нормально
-- 
Julik






Max Lapshin

unread,
Feb 10, 2012, 10:02:50 AM2/10/12
to ror...@googlegroups.com
ree-1.8.7

2012/2/10 Julik Tarkhanov <julian.t...@gmail.com>:

Julik Tarkhanov

unread,
Feb 10, 2012, 10:14:54 AM2/10/12
to ror...@googlegroups.com

On 10 feb 2012, at 16:02, Max Lapshin wrote:

ree-1.8.7

Тогда да, танцы с бубном да манкипатчи.
-- 
Julik






Alexey Petrushin

unread,
Feb 10, 2012, 4:34:20 PM2/10/12
to ror...@googlegroups.com
Была такая-же проблема в 1.9.2. Там было два парсера, по умолчанию загружался старый, нужно было ДО ЗАГРУЗКИ яамл его переключить, и вроде еше я выставлял юникод по умолчанию, точно не помню и тогда нормально все работало. Как-то так, код к сожалению не скину потому-что уже точно не помю где этот хак находится.
Были еше какие-то фиксы вроде похоже на ya2yaml называлис, но я глянул и забил, потому-что на тот момент они показались мне кривыми.

Но в последних версиях я слышал что вроде-как все должно быть нормально, там должен уже новый парсер по умолчанию грузиться.

Alexey Petrushin

unread,
Feb 10, 2012, 4:38:20 PM2/10/12
to ror...@googlegroups.com
> ree-1.8.7
А, только заметил, тогда мой ответ не подойдет, это только в 1.9 такая проблема.
Reply all
Reply to author
Forward
0 new messages