ИМХО достаточно маркеров начала и/или вааще по ходу нечитаемые символы заменять всегда на строку заполнения, а если строка пуста - просто выкусится ненужное.Примерно так же играют с 0x0d 0x0a - выкусывают 0x0d и заменяют 0x0a на 0x0d (в scanf кажись).