Support cross-compiling for iOS (armv7)

So does `as_str`: if `utf_c_str` can possibly be null, it needs to be checked before and then this iteration of the loop skipped.