我在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();
答案 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 工具,并在数据库中设置表字段的编码。