Php 菲律宾元';t str_替换数据库中的单引号

Php 菲律宾元';t str_替换数据库中的单引号,php,mysql,ascii,content-type,Php,Mysql,Ascii,Content Type,这解释起来真的很奇怪,所以就这样 我正在从phpmyadmin获取数据,其中包含未替换的单引号。我正在尝试将'转换为&apos使用内容类型:text/html 在数据库的一列中,这是值:今年的…。 我将内容类型设置为 我用mysql\u fetch\u assoc()获取了数据,所以今年它应该会输出apos;s。但是,今年它输出了�s、 .. 然后,我从数据库中手动删除了今年的…,并将其替换为今年的…(直接在数据库中)。我再次将内容类型设置为text/html,得到如下结果: This year

这解释起来真的很奇怪,所以就这样

我正在从phpmyadmin获取数据,其中包含未替换的单引号。我正在尝试将
'
转换为
&apos使用
内容类型:text/html

在数据库的一列中,这是值:
今年的…。

我将内容类型设置为

我用
mysql\u fetch\u assoc()
获取了数据,所以今年它应该会输出
apos;s
。但是,今年它输出了
�s、 ..

然后,我从数据库中手动删除了今年的…
,并将其替换为今年的…
(直接在数据库中)。我再次将内容类型设置为
text/html
,得到如下结果:

This year's...
就这样。。。这几乎无法解释。单个报价通过表单提交到数据库。我获取它并将内容类型设置为text/html,它将
'
输出为
。如果我进入数据库,手动删除
,并将其替换为相同的
,然后输出
&apos

<?php
    header('Content-Type: text/html; charset=UTF-8');
    include('init.inc.php');

    function get_feeds() {
        $query = mysql_query("SELECT * FROM test ORDER BY id DESC LIMIT 1");
        while($fetch = mysql_fetch_assoc($query)) {

            $text = $fetch['text'];         

            echo $text;         

            }
        }

?>
<?php get_feeds(); ?>
有没有人经历过这种奇怪的怪癖或认识到它可能是什么

更新:

数据库中的值是今年的
,它是通过表单上传的。该报价在数据库中不显示。下面是我获取数据的方法。我希望将
转换为
&apos

<?php
    header('Content-Type: text/html; charset=UTF-8');
    include('init.inc.php');

    function get_feeds() {
        $query = mysql_query("SELECT * FROM test ORDER BY id DESC LIMIT 1");
        while($fetch = mysql_fetch_assoc($query)) {

            $text = $fetch['text'];         

            echo $text;         

            }
        }

?>
<?php get_feeds(); ?>

它今年输出
�s


然后,我从数据库中删除
今年的
,并手动将
今年的
写入它的位置。它今年输出此
&apos;在插入数据库之前,将特殊字符转换为HTML实体

htmlspecialchars("This year's");

如果我添加了一些代码,共享代码会更好。这段代码很容易解释。数据库中的单引号都是不可替换的,并通过表单上传。use
$text=html\u entity\u decode($fetch['text'])你真的完全使用utf8吗?在连接到数据库后是否发送了这样的查询:“SET NAMES utf8”?有时数据未正确存储为utf8。Steven,它已设置为utf8@阿米尔,我试过了,但没有改变。我想我必须改变数据插入数据库的方式。我只是使用mysql\u real\u escape\u字符串,但会添加addslashes。