__str__ method should return byte string, not unicode string. But
as we don't have a check in every KS_OBJECT.__str__ method, let's at
least add try-except block to prevent UnicodeDecodeError tracebacks.
I think this is okay, but this is the kind of change I would very much
like to see some test cases for.