PHP警告:json_encode():无效的UTF-8序列

时间:2013-04-15 17:54:16

标签: php phpmyadmin json

我正在使用PHP填充我的DataTables选择框。

如果我使用DataTables页面添加一个新条目(单击“添加”按钮),我对重音符(特殊字符)没有问题,但如果我使用phpMyAdmin页面(sql命令)添加新条目,则字段通过包含重音的phpMyAdmin页面添加的内容不会显示(json_encode为此字段返回null)。

这是行错误:

aDataInitial = '<?php  echo json_encode($stack); ?>';'

我尝试使用utf8_encode,试图将mysqli charset声明为UTF8,我的MySQL字符集默认为UTF8。

为什么通过DataTable页面添加的条目显示正常,而phpMyAdmin添加的条目不是?

这是我的HTML / PHP代码:

<?php   
    $connection = ($GLOBALS["___mysqli_ston"] = mysqli_connect('localhost',  'mbrconsu_un394x',  'y1cz9,rd+hf6')) or die(((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));
    ((bool)mysqli_query( $connection, "USE mbrconsu_mmx")) or die(((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));

    $aFieldType = array ('tema', 'vinculo', 'empresa', 'subcontratada', 'gerencia', 'areasolicitante', 'cc');
    $stack=array();

    foreach ($aFieldType as $type)
    {
        $sql="SELECT {$type} FROM treinamentos ORDER BY {$type} ASC";
        $result = mysqli_query($GLOBALS["___mysqli_ston"], $sql);

        while($row = mysqli_fetch_array($result))
        {
            $stack[$type][] = array($row[$type],$row[$type]);
        }
    }
?>
        <script type="text/javascript">
            aDataInitial = '<?php  echo json_encode($stack); ?>';
        </script>

0 个答案:

没有答案