4 ms·
ISO 8859 (or big brother ISO 10367) with ISO 4873 is fairly sane, backwards compatible with ASCII, distinguishable from UTF-8, and historically supported by X t
by kps 11y ago
ISO 8859 (or big brother ISO 10367) with ISO 4873 is fairly sane, backwards compatible with ASCII, distinguishable from UTF-8, and historically supported by X terminals… but not much else. ‘Plain ASCII’ is not often fully supported either; how many people even know that the standard included composing accented characters by overstriking (e.g. a BS " → ä)?
- jameshart 11y agoThe ASCII standard has nothing to say about backspace overstriking - that would be something defined by a terminal, file format, or wire specification. In a more common example, ASCII has nothing to say about how you move the cursor to the start of a new line. Some terminal standards will do so on an LF, others just move the cursor down on LF; file and wire specs need to take a position on how they want to represent a line break; and now we get to the point where CRLF is a magic sequence needed to trigger a line break in some formats and it is completely unrelated to how a particular terminal behaves.
- kps 11y ago> The ASCII standard has nothing to say about backspace overstriking It seems impossible to get ANSI copies of old standards (even for money) but the ECMA (1973) printing says: 3.2 Diacritical Signs (Positions: 2/2, 2/7, 2/12, 5/14, 6/0, 7/14) In the 7-bit character set, some printing symbols may be designed to permit their use for the composition of acce‐ nted letters when necessary for general interchange of information. A sequence of three characters, comprising a letter, BACKSPACE and one of these symbols, is needed for this composition; the symbol is then regarded as a diacrit‐ ical sign. It should be noted that these symbols take on their diacritical significance only when they precede or follow the character BACKSPACE; for example, the symbol corresponding to the code combination 2/7 normally has the significance of APOSTROPHE, but becomes the diacritical sign ACUTE ACCENT when preceded or followed by the character BACKSPACE. This is precisely the reason ASCII 1967 replaced ← with _ and ↑ with ^ (explicitly still “circumflex accent” in Unicode) and added ` (“grave accent”, likewise). ANSI made this optional in the 1986 revision, in §2.1.2 — “The use of BS for forming composite characters is not required.” — with a note that it would likely be removed from a future revision (but there never was another one). > In a more common example, ASCII has nothing to say about how you move the cursor to the start of a new line. It does; it just says something slightly unfortunate about code 0x0A. CR Carriage Return A format effector which moves the active position to the first character position *on the same line*. LF Line Feed A format effector which advances the active position to the *same character position* of the next line. [Italics added] But then it says: The Format Effectors are intended for equipment in which horizontal and vertical movements are effected separately. If equipment requires the action of CARRIAGE RETURN to be comhined with a vertical movement, the Format Effector for that vertical movement may be used to effect the combined movement. For example, if NEW LINE (symbol NL, equivalent to CR + LF) is required, FE2 shall be used to represent it. This substitution requires agreement between the sender and the recipient of the data. The use of these combined functions may be restricted for international transmission on general switched telecommunication networks (telegraph and telephone networks). So CR LF will unambiguously get you the first position on the next line. The code for LF is allowed to be replaced by NL by “agreement”, but CR can't move to the next line.
- jameshart 11y agoThat's fair, and thanks for digging up those actual standards - they are indeed not easy to find these days. I think though that tends to be the standard speaking to the intended usage of the ASCII codes, more than it does to an attempt to standardize behavior of all input and output devices. It's more a suggestion that some equipment might choose to use backspace for diacritics, and some might separately effect X and Y movement, but others might not. Certainly in practice terminals have always exposed their different capabilities by giving special terminal code meanings to ASCII sequences, and, when terminal capability negotiation was not an option (e.g. in specifying a file format or defining how to separate SMTP headers) ASCII users have made their own standards for these things (I guess this is the sort of 'agreement' the standard alludes to).
- kps 11y agoYes, the ‘dual use’ characters were define at the request of European delegations and the language makes it clear that it was expected that English-language terminals would continue to have " look like " and not ¨ and so on. ASCII was defined before video terminals were developed, so no one thought overstriking was remarkable. As it turned out, non-English European language versions ended up not generally using overstrikes anyway, but redefined the ‘national use’ characters #$@[\]{|} instead, which unfortunately did lead to ambiguity.