0

如果我使用 phpmyadmin 页面插入包含特殊字符的字段的条目,下面的函数将向具有特殊字符的字段返回“null”,而没有特殊字符的字段将正确显示。

如果我使用我的网页(jQuery DataTables)插入一个具有相同特殊字符的字段的条目,它将正确显示它,没有问题。

为什么只有手动插入会干扰数据显示?
我的数据库整理是 UTF8,我已将 HTML 和 PHP 字符集设置为 utf-8,尝试使用 utf8_encode(),但这似乎都不起作用。

这是我的 PHP 代码和用法:

    $connection = ($GLOBALS["___mysqli_ston"] = mysqli_connect('localhost',  '',  '')) 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 ")) 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>
4

1 回答 1

1

通过 phpMyAdmin 向表中插入数据,然后使用控制台客户端查看真正插入数据库的内容。可能您在 phpMyAdmin UI 中配置错误的字符集。

毕竟,您明确表示您确实在您的数据库、网站中设置了 UTF-8,并且您自己的 web 应用程序中的 UI 可以正确插入数据。因此,您唯一没有检查的是 phpMyAdmin。我也会尝试使用 mysql 控制台客户端插入您的特殊字符串。当然,还要检查插入到设置为 UTF-8 输出的客户端中的数据。

于 2013-04-13T04:37:45.853 回答