The reason you had issues is due to str_split is not multibyte safe.
In short, this means that it can potentially split multibyte characters "in the middle" i.e. after 7 bit instead after 16 bit.
When working with multibyte languages make certain you use the mb_ string functions, or enable it in the php.ini file so it automatically use it when available.
In your case, you would need to use mb_split, though its slightly different since this one is based on a regex, so you would need to tell it where to split.