2016-01-13 49 views
0

无论我做什么,我似乎都无法让json_encode处理从我的fr列返回的结果。无法让json_encode与数据库条目一起工作

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

我把一切utf8mb4我的谷歌搜索这个问题,但没有运气的建议。

如果$语言是'en'并且$ fileID = 1,这是有效的。 如果$ language是'fr'并且$ fileID = 1,则失败。

无论哪种方式print_r给出了正确的结果。回显与fr显示为空。从语言cn

//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."} 

结果从语言FR:

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

您能否在问题中添加必要的信息?在这种情况下是'print_r'的结果。 – KhorneHoly

+0

结果已添加到问题。 –

+0

你是怎么得到这两个结果的?什么变量的Print_r?还有什么是这样做“$ stmtGetWords-> bind_result($ wordID,$文本);” –

回答

0

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

只要您的JSON包含正确的UTF-8,它就可以工作。

相关问题