Php utf8重音的显示不一致

Php utf8重音的显示不一致,php,sql,mysql,ajax,utf-8,Php,Sql,Mysql,Ajax,Utf 8,我有一个数据库,一个表,一个特定的字段,其中有各种服装的描述。这些描述通常包含UMLAUT或类似字符 我从两个不同的php字段中检索这个字段,我没有对数据做任何处理,但是它的显示不一致 在文件1中,它将正确显示如下所示,或添加 $con->query("SET NAMES 'utf8'"); 及 如果我只向file1添加上面的一个,数据将无法正确显示 $con->set_charset("utf8"); 在文件2中,只有在以下情况下才会正确显示 $con->query("

我有一个数据库,一个表,一个特定的字段,其中有各种服装的描述。这些描述通常包含UMLAUT或类似字符

我从两个不同的php字段中检索这个字段,我没有对数据做任何处理,但是它的显示不一致

在文件1中,它将正确显示如下所示,或添加

$con->query("SET NAMES 'utf8'"); 

如果我只向file1添加上面的一个,数据将无法正确显示

$con->set_charset("utf8");
在文件2中,只有在以下情况下才会正确显示

$con->query("SET NAMES 'utf8'"); 
一切就绪

加上

header("Content-Type: text/html; charset=utf-8");
与“集合名称”查询结合使用或不使用“集合名称”查询将导致其显示不正确

$con->set_charset("utf8");
似乎在任何一点上都没有区别

此问题存在于windows和linux上的internet explorer和firefox上

显示不一致的数据示例:

ED HARDY SCHUHE IM JAPAN-STYLE, GRÖßE 36
文件1:

<?php
header("Content-Type: text/html; charset=utf-8");
if (isset($_GET["pk"])) {
    $pk = $_GET["pk"];
}
$con = mysqli_connect("localhost","user","password", "database");
if (!$con) {
    echo "Can't connect to MySQL Server. Errorcode: %s\n". mysqli_connect_error();
    exit;
}
$con->query("SET NAMES 'utf8'");
$retreiveQuery = 'SELECT ARTICLE_NAME FROM AUCTIONS WHERE ARTICLE_NO = ?';
if ($getRecords = $con->prepare($retreiveQuery)) {
    $getRecords->bind_param("s", $pk);
    $getRecords->execute();
    $getRecords->bind_result($ARTICLE_NAME);
    while ($getRecords->fetch()) {
        echo "<h1>".$ARTICLE_NAME."</h1>";
    }
} else {
    print_r($con->error);
}
然后,我使用file2通过ajax加载一个包含内容的层,这会错误地显示数据。数据将成为一个链接,该链接使用file1将数据加载到不同的层中,从而正确显示数据

$con->set_charset("utf8");
我真的不明白这种不一致是从哪里来的

编辑:

数据在file1中正确显示,并设置了集合名称和标题,页面显示为utf-8


只有当网页信息显示字符集为ISO-8859-1时,文件2才会正确显示数据,这意味着省略集合名称并设置标题。

确保文件以utf8编码保存,而不是其他方式保存。 这可能可以通过IDE或文本编辑器完成。也就是说,在eclipse中,您可以选择编辑->设置编码


我猜file2.php或index.php是用其他编码保存的

这是以前问过的!请点击此处:
header("Content-Type: text/html; charset=utf-8");