Survive ASCII incompatible encodings

The we monkey-patch String#encoding to make it resistant to Encoding::ConverterNotFoundError
as the test itself is broken code. It relies on the fact that #non_empty? is called at least once before
String#encode errors.