Сохранение строки в бинарном файле называется сериализацией... Длину строки нужно сохранять, чтобы её потом можно было считать (это я так делаю обычно, хотя можно и 0-ой байт искать)... Набор байтов английского/русского/китайского текста ничем не отличается... Может проблема в кодировке?