It's possible that the spacing is being preserved, but your browser is ignoring it - more than a single plain space will be ignored by most browsers unless the text is enclosed in something like <pre></pre> tags. Try printing your content between <pre></pre> tags, or view the source code of your page, and see if the spacing is being preserved there.
A better solution would be to implement some basic formatting with HTML and/or CSS, but if it's doing what I suspect, you may be able to do something as simple as:
$content = str_replace(' ', ' ', $content);
Before printing out your content to get something close to what you want.