I've records with fields values containing more than one white space. The White spaces are preserved in the back-end but while displaying it on the Visualforce page, the white spaces are reduced to only one white space. I'm looking for something like <pre>. I tried with CSS property white-space:pre/pre-wrapbut it didnt work. Using pre tag with apex tags are bringing in the alignment issues even with css property display:inline-block. The lines displayed below for outputText with spaced replaced as '&nbsp;' in the class are displayed text as it is in the page, like A&nbsp;&nbsp;B

<apex:outputText escape="false"> {!myText}</apex:outputText>


<apex:outputText escape="false" value="{!myText}"/>

Sample details: Original data: A B

Expected: A B

Actual: A B

Space after A in the above text has been trimmed to single whitespace. I tried with but no change. Anyone faced the same issue and resolved? Please help.


1 Answer 1


As per Salesforce documentation:

If multiple spaces are required for some reason (e.g. formatting purposes), the &nbsp; entity must be used. However, in order for this entity to not itself be HTML escaped by apex, a proper "escape" option must be specified. Examples:

a) For the outputText tag, the "escape" attribute must be set to false. e.g.:


comment = new CaseComment(CommentBody = 'There&nbsp;&nbsp;&nbsp;are&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;spaces&nbsp;&nbsp;&nbsp;between&nbsp;&nbsp;&nbsp;each&nbsp;&nbsp;&nbsp;word.\r\n\r\nThere is a blank line before this one.');

Apex page:

<apex:outputText escape="false" value="{!comment.CommentBody}"/>

b) selectList / selectOptions / selectOption:

If you wish to render non-breakable spaces in options in a select list, the attribute to set is a bit different; either by setting "itemEscaped" to "false" when using apex:selectOption, or, if creating SelectOption objects in the controller, call setEscapeItem(false) on each SelectOption that has the values with the &nbsp; entities.

Source: -https://help.salesforce.com/HTViewSolution?id=000194152&language=en_US


I tried with following code and it is working fine with escape="false".


public String getMyText() {
    String myText = 'A&nbsp;&nbsp;&nbsp;B';
    return myText;

VF Page



  • I'm getting A&nbsp;&nbsp;B when I used apex:outputText escape="false"
    – Vignex
    Jun 26, 2015 at 11:00
  • @Vignex It is working for me. Please find my updated answer.
    – Saroj Bera
    Jun 26, 2015 at 11:27
  • It worked...but the formatting is lost completely
    – Vignex
    Jun 26, 2015 at 12:03
  • @Vignex Can you please explain about the formatting issue, you experienced.
    – Saroj Bera
    Jun 26, 2015 at 12:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .