php-过滤输入的编码问题

fgw7neuy  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(326)

我正在使用php filter\u 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\u general\u ci编码的。现在,我尝试了这个函数

utf8_decode($data)

但它不起作用。请帮助还原使用filter\u flag\u encode\u 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;
}
}
6qfn3psc

6qfn3psc1#

ù “mojibake”是什么意思 ù .
看看这个怎么办。
不要使用任何功能,如utf8\u解码;他们只会使问题更糟。

相关问题