Правильный способ хранения текста и HTML-кода в базе MySQL?
Ответ на вопрос из заголовка:
Никак особенно не хранить. Хранить абсолютно так же, как и любые данные, - как есть. То есть, НИКАК их не модифицируя для хранения. Решение конкретно твоей проблемы:
mysql_set_charset('utf8'); после коннекта
+
плюс таблицы должны иметь кодировку utf8
Подробнее: phpfaq.ru/charsetРазбор вопроса:везде совет для записи в базу использовать mysql_real_escape_string(), 
Это информация устарела и не соответствует действительности. Единственно правильным вариантом добавления данных в запрос являются подготовленные выражения.Как я понимаю необходимо обрабатывать текст вот так перед вставкой:
Неправильно понимаешь.
Перед вставкой текст обрабатывать не надо вообще никак. 
Для корректной работы SQL, как я уже писал выше,  должны использоваться подготовленные выражения. HTML же к SQL не имеет ни малейшего отношения. и никакая HTML функция, разумеется, при сохранении в БД использоваться не должна.К примеру "⇔" при записи в базу превращается в "?"
Вот с этого и надо было начинать.  У тебя проблема с кодировками.
Для данных в которых могут быть спецсимволы (изображения, текст) я обычно перед отправкой в базу использую base64_encode.
Вообще делать htmlentities перед записью в БД нет большого смысла. Данные нужно экранировать во view перед выводом.