Some languages actually require strings to be valid UTF-8, unlike C which couldn't care less as long as it is NULL terminated. Change triggered by Python support, but is also useful for Rust and Java.