You could pack upper and lowercase roman letters and numerals for a total of 62 characters and then have room for a period and space and you’re full. With only uppercase you can a decent set of symbols, see the SIXBIT encoding
https://rabbit.eng.miami.edu/info/decchars.html
that Digital used for file names back when there was a computer industry on the US East Coast. If you wanted something general purpose you’d need to add some kind of shift to get lower case characters if not additional symbols and control characters, but now the meaning of the characters depends on state which might have been seen as a burden on the peripherals of the day and is certainly more of a hassle to program. Note it was seen as decisive that IBM’s 360 used 8-bit characters that could have fit the ASCII code but they went with the 8-bit
https://en.wikipedia.org/wiki/EBCDIC
code instead because it was easier to make compatible with older keypunch machines.
Already 8-bit is looking like overkill, I think the control characters were not really properly utilized in 7-bits, 8-bits let you fit some combination of extra symbols, modified roman letters used in other european languages, and such. You can’t cover every European language in 8 bits (which is why they had different code pages) but you could get most latin variants and probably some other sets like Greek, Cyrillic, even Japanese Kana, in 10-bits but hardly anyone wants to use all those characters at the same time.
If you had a sixty bit computer you might also consider a 5-bit code set like
[1] https://www.ibm.com/docs/en/cobol-zos/6.4?topic=arithmetic-s...
6 bits is too few for a lower- and uppercase alphabet, digits and punctuation.
7 bits could have worked (see: ascii), but I guess 8 won because 7 would be an odd (no pun intended) choice and because of the popularity of the VAX.
“The cells marked as reserved for extensions (which use the LS code again a second time—just after the first LS code—to shift from the figures page to the letters shift page) has been defined to shift into a new mode. In this new mode, the letters page contains only lowercase letters, but retains access to a third code page for uppercase letters, either by encoding for a single letter (by sending LS before that letter), or locking (with FS+LS) for an unlimited number of capital letters or digits before then unlocking (with a single LS) to return to lowercase mode.”
In computing, using such ‘shift’ codes complicates programming, though, as it makes it hard to compute string length or to index into a string (similar to the problem with UTF-8). Worse, if you see a given code sequence in a larger sequence, you may have to go arbitrarily far back in the input to figure out what it means.
Before the IBM System/360, there were "scientific" computers, which were word-oriented and used binary arithmetic, and "business" computers, which were character-oriented and used decimal arithmetic. The IBM System/360 unified the product lines with a standardized architecture.
There are probably lots of similar problems; this is just one that I thought of while writing recent code.