Indeed, it seems that encodings have some kind of ordering such that the following will return `-1`:

    "\xff".force_encoding('utf-8') <=> "\xff".force_encoding('iso-8859-1')

… but swapping the two strings around will return `1`.

Unfortunately this behaviour isn't currently specified in RubySpec. Given how unintuitive the notion of an encoding being "less than" or "greater than" another is, I believe the best course of action is to look at MRI source code to figure out the rules around it, then add RubySpecs to that effect, and finally replicate the behaviour in Rubinius.

I don't think we can merge this pull request in its current state, until we know when to return `-1` and when to return `1`.