A: 

The only thing that I can think to do is sub-class the dropdownlist control and override the render method and see if you can't circumvent the trimming that the base dropdownlist control is doing on its items collection.

If sub-classing is too much work, then use some client side Javascript code to update those items upon page load. This would be a snap with JQuery. I hope that helps.

James
A: 

I've had a look at this and I don't think it is possible to get the 'out of the box' dropdownlist control to do what you are wanting it to do.

The problem is that any text values you bind to the control will automatically be html encoded. This means that ' ' will always be converted to ' '. This happens whether you add the ' ' to the text values in your data source before binding it to the control or via the DataTextFormatString property.

I expect this is done to avoid rogue html breaking the control once it is rendered to the page.

I think James' suggestion of some kind of custom control is probably your best way to get the functionality your looking for.

Andy Rose
+1  A: 
DropDownList ddl = new DropDownList();
ddl.Items.Add(new ListItem(Server.HtmlDecode("& n b s p;&n b s p ;& n b s p ;&n bs p;abc"), "abc"));

Hope this helps !

Note : remove the spaces between characters..

Canavar