3 ms·
Unicode 3.1 introduced U+E0000–U+E007F for in-band language tagging, using what’s now called BCP 47 language tags. (https://www.unicode.org/reports/tr27/tr27-4.
by chrismorgan 5y ago
Unicode 3.1 introduced U+E0000–U+E007F for in-band language tagging, using what’s now called BCP 47 language tags. (https://www.unicode.org/reports/tr27/tr27-4.html https://www.unicode.org/reports/tr27/tr27-4.html, heading “13.7 Tag Characters (new section)”.) Right from their introduction, their use was “strongly discouraged”: they’re designed for use with special protocols, with out-of band tagging preferred.
In Unicode 5.2, I think, this range was elevated from “strongly discouraged” to “deprecated”: https://www.unicode.org/versions/Unicode5.2.0/ch16.pdf#page=22 https://www.unicode.org/versions/Unicode5.2.0/ch16.pdf#page=....
In-band signalling in Unicode in general is fraught. The Unicode 5.2.0 specification linked goes on to show various of the reasons why this sort of tagging is generally problematic and should not be used in normal text. (And this is why they were strongly discouraged from the start.)
Text direction signalling is another troublesome area of Unicode; there are multiple techniques, some strongly discouraged, and it’s a perennial source of interesting security bugs. The only reason direction signalling is supported at all is because it’s needed. Life would be easier with it gone.