-->

特殊字符和双引号问题在PHP(Special characters and double quote

2019-10-16 14:33发布

我有这样的价值在我的数据库列,

法官Fürstová圣地亚哥“多年来来了”

我用PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"来处理我的所有特殊字符,

class database_pdo
{
    # database handler
    protected $connection = null;

    # make a connection
    public function __construct($dsn,$username,$password)
    {
        try 
        {

            $this->connection = new PDO($dsn, $username, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
            $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

        }
        catch (PDOException $e) 
        {
            # call the get_error function
            $this->get_error($e);
        }
    }
    ...
    ...
    ...

 }

当我尝试打印我的输入字段值,

<input name="title" type="text" value="<?php echo $page->title;?>"/>

我只在我的输入字段得到法官Fürstová米拉

如果我使用htmlentities来解决双引号的问题,

<input name="title" type="text" value="<?php echo htmlentities($page->title);?>"/>

我得到这个在我的输入字段,

法官Fürstová圣地亚哥“多年来来了”

那么,如何才能解决这个特殊字符和双引号的问题在一次?

Answer 1:

尝试使用用htmlspecialchars(),而不是ヶ辆()。



Answer 2:

ヶ辆()与ISO-8869-1编码默认之前PHP5.4工作

尝试提供编码参数的函数调用:

<?php echo htmlentities($page->title, ENT_COMPAT | ENT_HTML401, 'UTF-8');?>

没办法绕过提供第二个参数,虽然,但ENT_COMPAT | ENT_HTML401 ENT_COMPAT | ENT_HTML401是默认反正。



文章来源: Special characters and double quotes issue in PHP