无法获得json_encode以使用数据库条目

时间:2016-01-13 14:21:40

标签: php json mysqli

无论我做什么,我似乎无法让json_encode处理来自fr列的返回结果。

这是我的表的导出:mctrivia.com/language.zip

我按照Google搜索这个问题的建议将所有内容设置为utf8mb4,但没有运气。

如果$ language是' en'和$ fileID = 1这是有效的。 如果$ language是' fr'和$ fileID = 1这个失败了。

无论哪种方式,print_r都会给出正确的结果。使用fr。

,回显显示为null
    //get list of words in current language file
    $query='SELECT `key`,`' . $language . '` FROM `language` WHERE `file`=' . $fileID;
    $stmtGetWords = $conn->prepare($query);
    $stmtGetWords->bind_result($wordID,$text);
    $stmtGetWords->execute();
    $wordList=array();
      while ($stmtGetWords->fetch()) {
        $wordList[$wordID]=$text;
    }
    print_r($wordList);
    $stmtGetWords->close();

    //create json file data
    $fileData=json_encode($wordList);
    echo '<br>'. $fileData . '<br>';

语言结果:

Array ( [lang] => English [subPage1Intro] => Welcome to sub page 1. ) 
{"lang":"English","subPage1Intro":"Welcome to sub page 1."}

语言结果:

Array ( [lang] => Fran�ais [subPage1Intro] => Bienvenue � sous page 1. ) 

1 个答案:

答案 0 :(得分:0)

您的法语文本不包含有效的JSON,因为它不是UTF-8!您可以在wikipedia page找到更多信息。

只要您的JSON包含正确的UTF-8,它就会起作用。