固定長ファイルの切り出しについて良いやり方かライブラリがあれば教えてください

1. 文字コードはUTF-8
2. CP932に無い文字も含む、サロゲートペアは無し
3. 全角半角混在
4. フォーマットは半角文字1、全角文字2で換算した時の文字列長で指定

2のせいで一度SJIS変換してからバイト長で切り出すことができなくて困ってます
1文字ずつ全角か半角かを判断するしかないでしょうか