从数据库中获取值时,单引号显示? HTML中的图标

时间:2017-10-01 18:10:06

标签: php html

我在php中制作一个简单的博客模型,现在我已将这些数据直接添加到来自phpmy admin的数据中这是虚拟数据

Post-ironic mumblecore authentic, stumptown try-hard chambray sartorial 
McSweeney’s VHS put a bird on it. Pitchfork lomo meggings, meh whatever cred 
beard four loko hella. Flannel swag normcore, leggings 3 wolf moon meditation 
Marfa hella fingerstache Thundercats mustache. Lo-fi typewriter Shoreditch, 
Odd Future fingerstache iPhone retro McSweeney’s four loko Kickstarter hoodie

上面的文本中有'个单引号值,现在的问题是在PHP中解析vales然后以HTML格式显示它而不是单引号。

可能是什么问题?

这是我用html格式打印的输出

Post-ironic mumblecore authentic, stumptown try-hard chambray sartorial 
McSweeney�s VHS put a bird on it. Pitchfork lomo meggings, meh whatever 
cred beard four loko hella. Flannel swag normcore, leggings 3 wolf moon 
meditation Marfa hella fingerstache Thundercats mustache. Lo-fi typewriter 
Shoreditch, Odd Future fingerstache iPhone retro McSweeney�s four loko 
Kickstarter hoodie

我正在使用普通的PHP代码来显示像<?php echo $value['post_content']; ?>这样的数据我甚至在PHP中尝试了htmlspecialchars_decode函数但是效果不好

我正在使用OOP PHP技术,这是我正在使用的代码

$query = "SELECT * FROM posts";
$connection = $this->establish_connection();
$data = $connection->query($query);
$connection->close();

3 个答案:

答案 0 :(得分:1)

这是一个Unicode问题。

原始文本使用不同的Unicode进行编码,而不是用于显示(utf8),所以请尝试:

$query = "SELECT * FROM posts";
$connection = $this->establish_connection();
$connection->set_charset("utf8"); 
$data = $connection->query($query);
$connection->close();

答案 1 :(得分:1)

我认为你的逗号不是标准的单引号字符。将它们转换为数字表示并将其与标准单引号进行比较可以清楚地表明这一点。

尝试以下操作:用标准单引号替换所有这些逗号,或将现有逗号转换为相应的HTML实体或unicode表示。如果你转换它们,那么在不同的浏览器上测试它们以确保交叉兼容性。

答案 2 :(得分:0)

您需要在html的head标记内设置元编码,以匹配数据库中数据的编码,例如:

<meta charset="UTF-8">

在文件和数据库中匹配编码非常重要。您可以在大多数文本编辑器中使用 save with encoding 工具,并在数据库中设置表字段的编码。