PHP中的特殊字符和双引号问题
我的db列中有这种值 法尔斯托瓦米拉法官“我的爱是最小的” 我使用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
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@lauthiamkokhtmlspecialchars
应该可以,当你使用它时,它的来源是什么样子的?@lauthiamkok奇怪,我在输入中尝试了一个简单的回音,它工作了。也许其他人会知道是否有一些ini设置或什么不适用于htmlspecialchars或htmlentities。谢谢。我刚刚试过,但我只得到了Judge-FürstováMila
而不是Judge-FürstováMila“Ut enim ad minim veniam”
。htmlspecialchars()
实际上比在这方面使用htmllentities()
要好case@lauthiamkokhtmlspecialchars
应该可以,当你使用它时,它的来源是什么样子的?@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()
更适合您的情况。