Я использую функцию PHP filter_input для очистки параметров POST на моем сайте.
Код:
$text = trim(filter_input(INPUT_POST, 'text', FILTER_SANITIZE_STRING,
array('flags' => FILTER_FLAG_STRIP_LOW | FILTER_FLAG_ENCODE_HIGH)));
Теперь, если я вставлю такие символы, как "ù", это закодированный результат:
ù (& # 195 & # 185)
Мои таблицы базы данных закодированы в utf8_general_ci.
Теперь я попробовал с функцией
utf8_decode($data)
но это не работает.
Пожалуйста, помогите, как восстановить символы, закодированные с параметром FILTER_FLAG_ENCODE_HIGH?
РЕДАКТИРОВАТЬ: вот мой класс соединения
class Connection{
protected $db =null;
public function open()
{
try {
$dsn = "mysql:dbname="x"; host=127.0.0.1;charset=utf8";
$user = "user";
$password = "password";
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
);
$this->db = new PDO($dsn, $user, $password, $options);
return $this->db;
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
public function close()
{
$this->db = null;
return true;
}
}