2016-01-13 76 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,它就可以工作。