【发布时间】:2016-01-13 14:21:40
【问题描述】:
无论我做什么,我似乎都无法让 json_encode 处理我的 fr 列返回的结果。
这是我的表格的导出:mctrivia.com/language.zip
我按照谷歌搜索这个问题的建议将所有内容设置为 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>';
来自语言 en 的结果:
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. )
【问题讨论】:
-
您能否在问题中添加必要的信息?在这种情况下,
print_r的结果。 -
将结果添加到问题中。
-
你是怎么得到这两个结果的? print_r 是什么变量?还有这个方法在做什么“$stmtGetWords->bind_result($wordID,$text);”
-
JSON 必须是 utf-8 编码,法语文本似乎不是 utf8。这就是为什么你
can't get it to work -
@KhorneHoly:正要说同样的话。如果 ç 没有正确加载或显示,它就无法工作!