Provide better unicode support
Previously we were slicing on multibyte characters in a way that broke the unicode standard. Update ensures that we respect multibyte encoding wherever we can.
MR also adds an extra test for ensuring it doesn't happen again, and removes some silly extra logic that didn't really do anything in return for a safer std function.
Edited by Darrien Glasser