Недопустимо UTF-8
"\x80".valid_encoding?
# false
Ruby утверждает, что это UTF-8, потому что все строковые литералы по умолчанию имеют UTF-8, даже если это делает их недействительными.
Я не думаю, что вы можете заставить анализатор YAML возвращать неверный UTF-8.Но чтобы заставить Ruby конвертировать этого персонажа, вы можете сделать это
"\x80".b.ord.chr('utf-8')
# "\u0080"
.b
только в Ruby 2+.Вы должны использовать force_encoding
в противном случае.