I believe you're heading in the wrong direction.
You should store the text as-is in the database - no encoding.
Your problem is in the display of the
String. Before you display the string, parse, encode, and display it. When you start pushing display specific ideas like HTML encoding into the database, it means nothing else can read this data from the database without manually doing the HTML decoding. You're making the database HTML specific.
Before you decide whether to parse every time a string is displayed or have some sort of caching mechanism will depend on how often a particular string is used. Personally I'd parse it every time and only implement a more complicated solution if it was warrented.
Dave