2010-12-13 6 views
1

Я пытаюсь использовать базу данных для хранения набора LONGTEXT, который я вводил в базу данных с помощью формы. Но когда я помещал такие символы, как é, они выходят из базы данных как , есть ли способ конвертировать все символы с акцентом в объекты HTML, используя PHP, прежде чем он будет отправлен в базу данных?preg_replacing акцентированные символы с HTML Entity alternate

Я знаю о htmlentities();, но это также заменяет такие символы, как <, которые я не хочу, так как он не загружает HTML, когда содержимое отображается на странице.

Спасибо заранее

+0

Вы пытались использовать регулярное выражение? – Lockhead

+0

Как использовать регулярные выражения для замены акцентированных символов? – Brad

ответ

4

Всякий раз, когда вы видите такие вещи, как , это признак того, у вас есть несоответствие кодировок.

Если у вас есть ваша база данных и html, установленные в кодировке UTF-8, у вас не будет проблемы. Скорее всего, ваш HTML или база данных настроена на использование Latin-1 (ISO 8859-1) и других UTF-8 или наоборот.

Вы можете решить эту проблему, объединив один набор символов. Я лично предпочитаю UTF-8, поскольку он универсален. Однако, если вы не можете этого сделать, вы можете использовать PHP для скрытия между UTF-8 и Latin-1, используя следующие функции.

UTF-8 в Latin-1:

$latin_string = utf8_decode($unicode_string); 

Latin-1 в UTF-8:

$unicode_string = utf8_encode($latin_string); 

Если кодировать данные перед отправкой его в базу данных и декодировать его перед отображением , или наоборот, в зависимости от конфигурации вашей базы данных/html, ваша проблема будет решена.

В качестве альтернативы, если у вас есть расширение icon iconv на вашем сервере, вы можете использовать его для точной транслитерации или преобразования в обычный ASCII.

http://www.php.net/manual/en/function.iconv.php

1

Это звучит, как у вас есть база данных, используя кодировку, которая не поддерживает ваши акцентированные символы. Посмотрите на кодировку как для базы данных, так и для таблицы и убедитесь, что они используют кодировку, совместимую с Unicode. Я думаю, что наиболее распространенной предпочтительной кодировкой для базы данных и таблицы является UIF-8 Unicode (utf8).

Для получения информации о UTF8 и кодировании и сопоставлениях в MySQL обратитесь к http://dev.mysql.com/tech-resources/articles/4.1/unicode.html. Вы не указали свою базу данных, но приложение должно быть одинаковым.

+0

Примечание. Это не затрагивает заданный вопрос, но потенциально устраняет проблему, вызвавшую вопрос. – ebynum

 Смежные вопросы

  • Нет связанных вопросов^_^