Thought I’d post this here, just so it gets a little more exposure. It appears that Scrivener deletes non-breaking spaces during compile, whether the spaces were created within Scrivener or were in a document imported from another program.
Also, non-breaking spaces look identical to regular spaces when “Show Invisibles” is turned on, so there’s no way to tell if a document has them (since they can’t be searched for in the global search or document find boxes).
Preserving nbsps is totally crucial, I think. Especially in front of hyphens and ellipses. Personally I only use Scrivener for outlining, because it lacks paragraph and character styles. But I do write some short snippets of text now and then when they come to my mind. I already noticed, that one cannot tell apart a normal space from an nbsp. But when copying the text snippets to my actual writing programme, they do at least get across. Since I don’t use compile I have not noticed that they might even get deleted! Good to know. I just wonder why this issue does not disturb the majority of Scrivener users, who actually write their texts with Scrivener? Hard to believe that none of them uses nbsps properly.
I tried it myself today, and there is no problem with rtf, odt and doc.
However docx and also html and xhtml don’t show the nbsp. docx deletes it and ihtml[/i] simply converts it into a normal space (should be instead).
I did not try any other compile formats, but apart from the wish, that the nbsp should be distinguishable from the normal space in the editor, I would hope that this is being dealt with by L&L, so that the nbsps compile properly for all formats.