Проблема специальных символов - PullRequest
3 голосов
/ 30 сентября 2010

Когда я отображаю содержимое из базы данных, я получаю это:

У кого-то будет работа. Другие захотят одного. Они мои люди, они мои клиенты, и им отказывают в своих правах.

Этот текст был введен пользователем через textarea с tinyMCE. Как заменить специальные символы (используя preg_replace ()) из предложения на '', кроме символов: <>?

Ответы [ 2 ]

1 голос
/ 30 сентября 2010

Эта статья полностью стоит прочитать. Работа с символами UTF-8 - это то, что мы все переживаем в какой-то момент. Хитрость заключается в том, чтобы поймать их до того, как они войдут в базу данных, или исправить базу данных, чтобы при входе они не сломались. Как только они там, хотя это немного сложнее.

0 голосов
/ 30 сентября 2010

Как упоминал Чак выше, это проблема с базой данных.Если только вы не хотите отображать не-Unicode, то есть латинские символы, тогда да, preg_replace это путь.Вам нужно будет знать наборы символов достаточно хорошо, чтобы отфильтровать то, что вы не хотите.

Но если вы просто хотите, чтобы все отображалось правильно, то есть без символов мусора, то измените соответствующие части БД на utf-8.

Например, если вы используете mySQL, попробуйте изменить поле и кодировку таблицы, чтобы иметь возможность принимать UTF-8.По умолчанию latin1_general_ci - попробуйте изменить его на utf8_general_ci .Надеюсь, это объясняет мою точку зрения.

...