I couldn't think of a way to avoid the default strings without a `nil` guard on `clean_invalid_utf8_bytes`. We can't look at the string before cleaning it up without ruby complaining about encoding. This should, in theory, be a non-issue since you thought adapters should never hand down `nil` for `:html` and `:text` but there were tests that specifically handed the body `nil` values there.

Calling `.presence` after the html cleanup should maintain behavior since this method will return `nil` if both the text and html params are missing.