+1 on this, in French, we use a non-breaking space before our :, !, ? as they are spaced from the previous word and we don’t want them to land on the next line.
Current behavior of replacing non-breaking spaces with spaces:
![]()
By keeping the non-breaking space, there is no longer the “lone semicolon”:
![]()
I don’t think there’s a need for an HTML escape sequence for those characters, just like there’s no need for an HTML escape sequence for any other non-ASCII characters: pages are given to the browser encoded in UTF-8, and non-breaking spaces, like all other characters, have a UTF-8 representation, for example:
→, √, ½, ñ, Ł, …
(In other words, why does Discourse allow most Unicode sequences but not non-breaking spaces?)