Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的特殊字符和双引号问题_Php_Pdo_Special Characters_Double Quotes_Html Entities - Fatal编程技术网

PHP中的特殊字符和双引号问题

PHP中的特殊字符和双引号问题,php,pdo,special-characters,double-quotes,html-entities,Php,Pdo,Special Characters,Double Quotes,Html Entities,我的db列中有这种值 法尔斯托瓦米拉法官“我的爱是最小的” 我使用PDO::MYSQL\u ATTR\u INIT\u COMMAND=>“SET NAMES utf8”来处理我的所有特殊字符 class database_pdo { # database handler protected $connection = null; # make a connection public function __construct($dsn,$username,$pa

我的db列中有这种值

法尔斯托瓦米拉法官“我的爱是最小的”

我使用
PDO::MYSQL\u ATTR\u INIT\u 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;?>"/>
我在我的输入栏中得到这个

<input name="title" type="text" value="<?php echo $page->title;?>"/>
Judge-FürstovÃMila“我的爱是最小的”

那么,如何立即修复这个特殊字符和双引号问题呢?

尝试使用htmlspecialchars()而不是htmlentities()。

尝试使用htmlspecialchars()而不是htmlentities()。

在PHP5.4之前默认情况下使用ISO-8869-1编码

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

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

虽然无法绕过提供第二个参数,但默认值仍然是
ENT|u COMPAT | ENT|u HTML401

在PHP5.4之前默认使用ISO-8869-1编码

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

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



虽然无法绕过提供第二个参数,但默认值仍然是
ENT|u COMPAT | ENT_HTML401

谢谢。我刚刚试过,但我只得到了
Judge-FürstováMila
而不是
Judge-FürstováMila“Ut enim ad minim veniam”
htmlspecialchars()
实际上比在这方面使用
htmllentities()
要好case@lauthiamkok
htmlspecialchars
应该可以,当你使用它时,它的来源是什么样子的?@lauthiamkok奇怪,我在输入中尝试了一个简单的回音,它工作了。也许其他人会知道是否有一些ini设置或什么不适用于htmlspecialchars或htmlentities。谢谢。我刚刚试过,但我只得到了
Judge-FürstováMila
而不是
Judge-FürstováMila“Ut enim ad minim veniam”
htmlspecialchars()
实际上比在这方面使用
htmllentities()
要好case@lauthiamkok
htmlspecialchars
应该可以,当你使用它时,它的来源是什么样子的?@lauthiamkok奇怪,我在输入中尝试了一个简单的回音,它工作了。也许其他人会知道是否有一些ini设置或什么不适用于htmlspecialchars或htmlentities。谢谢。我只是尝试了一下,和Pinetree的建议一样,我只得到Judge-FürstováMila而不是Judge-FürstováMila“Ut enim ad minim veniam”…不,对不起,我实际上收到了这个错误消息,
在C:\wamp\www\xxx\form\u page\u update.php中使用未定义常量ENT\u HTML401-假定为“ENT\u HTML401”,在线…
@lauthiamkok ENT\u HTML401仅在PHP5.4+上可用。只要从第二个参数中删除常量,一切都会正常工作,您将正确解析字符串。我在5.3.10。。。它现在可以与
htmlspecialchars()
@lauthiamkok一起使用。是的,
htmlspecialchars()
更适合您的情况。谢谢。我只是尝试了一下,和Pinetree的建议一样,我只得到Judge-FürstováMila而不是Judge-FürstováMila“Ut enim ad minim veniam”…不,对不起,我实际上收到了这个错误消息,
在C:\wamp\www\xxx\form\u page\u update.php中使用未定义常量ENT\u HTML401-假定为“ENT\u HTML401”,在线…
@lauthiamkok ENT\u HTML401仅在PHP5.4+上可用。只要从第二个参数中删除常量,一切都会正常工作,您将正确解析字符串。我在5.3.10。。。它现在可以与
htmlspecialchars()
@lauthiamkok一起使用,是的,
htmlspecialchars()
更适合您的情况。