There's a bewildering diversity of pre-Unicode character schemes. Let's begin by distinguishing character set (assignment of codes to abstract characters) from encoding scheme (mapping of codes to sequence of bytes).

Many different character sets and encoding schemes, for assorted reasons:

Result: "There Ain't no such thing as plain text" ( Spolsky)

Multibyte character sets are annoying to work with, because length is o(n), can't tell if start of mb sequence or middle

See also Eric Fischer's article for the pre-ASCII history.