Php 更改mysql中的字符,转换失败-仍然得到NÃo

Php 更改mysql中的字符,转换失败-仍然得到NÃo,php,mysql,encoding,Php,Mysql,Encoding,我通过post和filter_输入用php中的数据填充这个mysql表。 数据库是utf8,但是当我有一个用户输入带有“^,,”的单词,比如Não,我得到这个->NÃo 我必须做些什么才能使它显示正确的值。或者我应该在检索数据时尝试进行一些更正吗 更新: 我已经添加了一个utf8_解码,现在它正在插入ok。 有人知道如何转换表中已有的字符串吗??我尝试使用convert函数,但无法使其工作: 更新: 我正在尝试以下代码: 使用拉丁语1选择convertfield 从表中,id=35 我仍然得到这

我通过post和filter_输入用php中的数据填充这个mysql表。 数据库是utf8,但是当我有一个用户输入带有“^,,”的单词,比如Não,我得到这个->NÃo

我必须做些什么才能使它显示正确的值。或者我应该在检索数据时尝试进行一些更正吗

更新:

我已经添加了一个utf8_解码,现在它正在插入ok。 有人知道如何转换表中已有的字符串吗??我尝试使用convert函数,但无法使其工作:

更新:

我正在尝试以下代码:

使用拉丁语1选择convertfield 从表中,id=35

我仍然得到这个:NÃo 我尝试了其他编码,但我从来没有得到Não这个词


有人对这个有什么想法吗

首先,确保您的页面是utf-8

<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
或者您也可以在.php文件中这样做:

header('Content-type: text/html; charset=UTF-8'); 
如果仍有问题,可以使用编码功能:

$value = utf8_encode($value);

希望所有这些都能有所帮助……

看起来在这一过程中有些东西无法处理Unicode。因此,ã被解释为两个独立的字符。确保使用Unicode处理字符串的所有操作都正常。

这些字符在哪里?这是它在实际数据库视图中显示的内容,如在phpmyadmin中,还是从数据库中提取数据并将其显示在页面上?这是从数据库中显示的。我正在使用heidisqlI,我也尝试过更改头,但没有运气,我仍然会收到奇怪的字符。您应该更改顺序:第一个HTTP头,而不是META标记。否则HTTP头将覆盖META标记;屏幕上有Não或其他东西吗??
$value = utf8_encode($value);