无论我做什么,我似乎无法让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. )
答案 0 :(得分:0)
您的法语文本不包含有效的JSON,因为它不是UTF-8!您可以在wikipedia page找到更多信息。
只要您的JSON包含正确的UTF-8,它就会起作用。