Role of UB / uninitialized memory

I concur, char in C tries to be too many different things at once and it just causes trouble. std::mem::byte maybe?