You can store the objects in a sql column, but I think you need to set the column to BLOB or XML. The reason why the em saves, and not the others, is because of the attributes in the other tags. the last double quote " was picked up as the start of the string, and the last " was the end. Thus em and p was saved.
So you need to use a parameter to store the character array
Update table set html=@html
eg parameter
Dim paramHTML As SqlParameter
paramHTML = New SqlParameter("@html", SqlDbType.blob)
paramHTML.Value = sHTML
myCommand.Parameters.Add(paramHTML)
But on the downside, you can extract them, but I don't see how you can reconstitute them back into html objects on your web page.
The objects need to be read by the server, so they can be converted into html, and sent back to the browser for decoding.
You may want to consider storing plain html in the database instead.
[edit]
You may want to consider html encoding the string before saving, and decoding during extraction.
Overall in the end, storing html in the database is a bad idea. I tried it once, and dealing with the " and slashes in the end, was more trouble then it was worth. So I went with a large parameter array, and just did a split to separate them back out
1498kbs|640x480|22000hz