Oh yes, good point - in my initial review, I mentioned about multi-byte chars w.r.t messing up offsets/lengths.
But you raise an excellent point - if the split is at a multi-byte boundary, then it needs to be handled properly (At both start and end of a split btw).