Безопасное хранение HTML в БД без влияния на кодировку символов - PullRequest
0 голосов
/ 17 марта 2011

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

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

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

Я сейчас нахожусьДелаем это:

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

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

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

Ответы [ 4 ]

2 голосов
/ 17 марта 2011

Почему бы Base64 не кодировать его для хранения, а затем декодировать после?

0 голосов
/ 17 марта 2011

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

0 голосов
/ 17 марта 2011

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

ИМХО, самый безопасный способ убедиться, что ваши данные не изменены, - это сохранить значения в двоичном виде.Base64 также будет работать.В любом случае, вы должны знать кодировку символов при чтении.

0 голосов
/ 17 марта 2011

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

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

...