Специальные символы и двойные кавычки в PHP

У меня такая ценность в столбце db,

Судья-Fürstová Mila "Ut enim ad minim veniam"

Я использую 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;?>"/> 

Я только получаю Judge-Fürstová Mila в своем поле ввода.

Если я использую htmlentities для исправления проблемы с двойными кавычками,

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

Я получаю это в своем поле ввода,

Судья-Фюрстова Мила «Ун-энд-энд-микс-венам»

Итак, как я могу исправить эти специальные символы и двойные кавычки сразу?

Solutions Collecting From Web of "Специальные символы и двойные кавычки в PHP"

Попробуйте использовать htmlspecialchars () вместо htmlentities ().

htmlentities () работает с кодировкой ISO-8869-1 по умолчанию до PHP5.4

Попробуйте указать параметр кодирования для вызова функции:

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

Однако нет возможности обойти подачу второго параметра, но ENT_COMPAT | ENT_HTML401 ENT_COMPAT | ENT_HTML401 умолчанию все равно ENT_COMPAT | ENT_HTML401 .