length parameter of read_fhs does mean codepoints now

This needs to be revisited when we implement NFG.