Encoding POEdit编码问题

Encoding POEdit编码问题,encoding,gettext,poedit,Encoding,Gettext,Poedit,我正在使用PoEdit创建我的messages.mo文件,以便在我的phpweb应用程序中使用 我检查了我的编码是UTF-8,但我的口音仍然没有显示出来(例如,“é”、“è”和…)。实际上,源文件和目标文件都是用UTF-8定义的 下面是我用来启用gettext的代码: <?php $dir = "../locale"; $lang="fr_FR"; $domain="messages"; putenv("LANG=$lang"); setlocale

我正在使用PoEdit创建我的
messages.mo
文件,以便在我的
php
web应用程序中使用

我检查了我的编码是
UTF-8
,但我的口音仍然没有显示出来(例如,“é”、“è”和…)。实际上,源文件和目标文件都是用UTF-8定义的

下面是我用来启用
gettext
的代码:

<?php
    $dir = "../locale";
    $lang="fr_FR";
    $domain="messages";
    putenv("LANG=$lang");
    setlocale(LC_ALL, $lang);
    bindtextdomain ($domain, $dir);
    textdomain ($domain);
    echo gettext("TEST 1") . "\n";
    echo __("Test 2"); // works if using gettext("Test 2");
?>

编辑:我还在这里添加了我的页面标题,说明我应该使用UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

编辑2:这里有一个。另外,我尝试在这里复制粘贴结果

R�gle plurielle 1可接近�标准

我应该

Règle plurielle 1无障碍标准


你知道如何解决这个问题吗?

如果你忽略了重要信息,比如PO或MO文件本身,甚至是“接受未显示”的含义(省略?改为“基本”字符?乱码),你真的不可能确定你在哪里犯了什么错。一般来说:在任何地方(源代码、Poedit、服务器、HTML输出)都坚持使用UTF-8,你会没事的。@VáclavSlavík你是对的,我的错。我添加了一些额外的细节——在我看来,我在任何地方都在使用UTF-8。也许我编译
.mo
文件的设置有误?我不是专家,也不知道去哪里找。。!该文件显然不是上面示例中的文件。不,编译MOs不会更改编码。也许PHP正在进行转换,而您在代码中告诉它使用fr_fr locale,而不是fr_fr.UTF-8。@VáclavSlavík your ROCK-我正在使用fr_fr并更改为fr_fr.UTF-8完成了这项工作。。。我很高兴知道为什么这是。。。!