Безопасное хранение HTML в базе данных без изменения кодировки символов

Я хочу взять строку и сохранить ее в базе данных MYSQL. Эта строка будет строкой HTML, и она может иметь любую кодировку символов или быть написана на любом языке.

Как я могу безопасно сохранить это в моей базе данных MYSQL, не затрагивая строку HTML, чтобы потом я мог ее восстановить, как есть?

Кроме того, поле, в котором он будет храниться, имеет text типа данных и имеет сортировку latin1_swedish_ci , это повлияет на это?

В настоящее время я делаю это:

 htmlentities($html, ENT_QUOTES, 'UTF-8') 

Но я не думаю, что это будет работать для всех наборов символов. Я имею в виду, как будут затронуты немецкие или японские персонажи?

Спасибо за любую помощь.

Почему base64 не кодирует его для хранения, а затем декодирует его после?

Вы можете сохранить его в поле BLOB, и MySQL никогда не попытается его преобразовать. Но это означает, что вы помните кодировку, которую вы использовали при сохранении строки.

Другой вариант – кодировать строку как base64.

Я не думаю, что сортировка не повлияет на хранение ценностей. Это повлияет только на поведение, когда вы делаете такие вещи, как сравнения (WHERE) и сортировку (ORDER BY).

IMHO, самый безопасный способ гарантировать, что ваши данные будут неизменными, – это сохранить значения как двоичные. Base64 также будет работать. В любом случае, вы должны знать кодировку символов, когда читаете ее обратно.

Интересно, что все предлагают base64, я никогда не думал об этом. Я знаю много баз данных CMS, которые я использовал, просто использую кодировку символов utf-8. Это поможет вашим германиям и японским персонажам. HTML не должен быть затронут и будет отображаться в браузере отлично, пока HTML-кодировка также является utf-8 charset = utf-8