Pondering extended ASCII

An examination of ASCII chars

A bit of background: the extended ASCII chars 145-148 were meant as control characters. However, Microsoft instead used them for some custom characters, namely “curly” quotes. Apple stuck with the original charset definitions, meaning that curly quotes from Word sometimes still show up as broken on MacOS. Although oddly, the entities for the same char (like “) work – apparently functioning as aliases to the “correct” upper-ASCII characters (like “).

My question is, why doesn’t this same remapping happen with the literal character? Isn’t it worth the sacrifice of some unused control characters to allow the user to see quotes as the copy editor intended them? Why punish the user because someone else used char 147 instead of 8220?

Also, if Microsoft hadn’t used those slots for their own stuff, and left it alone, then we would have those standard ASCII codes for other uses now – non-character delimiters, anyone? How great would it be if you had characters specifically for string delimiters, so you wouldn’t have to always be escaping quotes? I even notice that the original name of char 150 was “Start of guarded area”, 151 was “End of Guarded area”, 152 was “Start of string” and 156 was “String Terminator”. Sigh, for what might have been.

ASCII Num Entity Bad Char JS charCodeAt of Bad Good Char JS charCodeAt of Good
145 ‘ ‘ 145 ‘ 8216
146 ’ ’ 146 ’ 8217
147 “ “ 147 “ 8220
148 ” ” 148 ” 8221