might help, not sure how we'd handle cases where the last byte is actually half of a multibyte character though. Does creating a string for cases like that throw?