Do UTF-8 encoding natively.

This saves an allocation of a byte[]. I still need to follow up with a
change to keep a reference to the target segment, and then benchmark.