Has anyone else encountered this? If so, what approach have you taken?
Yup. And here's what I did: I kept the database format, that is, I didn't use null terminators, I used empty spaces to fill the remaining positions of each field value. For instance, if a field length in the database is 64 positions, and the provided value has 50 characters, then it will be saved with the 50 characters + (64 - 50) empty spaces.