Использование PHP против базы данных, совместимой с UTF-8. Вот как вводится.
- ввод пользовательских типов в textarea
- текстовая область, закодированная с помощью escape-кода javascript ()
- передано через HTTP-сообщение
- декодируется с помощью PHP rawurldecode ()
- прошло через HTMLPurifier с настройками по умолчанию
- сбежал для MySQL и сохранен в базе данных
И это получается обычным способом, и я запускаю unescape () при загрузке страницы. Это позволяет людям, скажем, копировать и вставлять непосредственно из текстового документа и отображать умные цитаты.
Но HTMLPurifier, похоже, забивает специальные символы, не относящиеся к UTF-8, те, которые экранируют () в простое выражение%, такое как Ö, которое экранируется в% D6, тогда как смарт-кавычки экранируются в% u2024 или что-то подобное и попадают в базу данных сюда. Он удаляет как специальный символ, так и следующий сразу за ним.
Мне нужно что-то изменить в этом процессе. Возможно, мне нужно изменить несколько вещей.
Что я могу сделать, чтобы не загромождать специальные символы?