首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json_encode()向带有重音(特殊字符)的条目返回"null“,但仅当它们在phpmyadmin中手动添加时

问json_encode()向带有重音(特殊字符)的条目返回"null“,但仅当它们在phpmyadmin中手动添加时
EN

Stack Overflow用户
提问于 2013-04-13 04:15:10
回答 1查看 1.7K关注 0票数 0

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

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

为什么只有手动插入才会窃听数据显示?

我的DB排序规则是UTF8,我已经将HTML和PHP设置为utf-8,尝试使用utf8_encode(),但这一切似乎都不起作用。

下面是我的PHP代码和用法:

代码语言:javascript
复制
    $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]);
        }
    }
?>

​

​

​

代码语言:javascript
复制
<script type="text/javascript">
            aDataInitial = '<?php  echo json_encode($stack);?>';
        </script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-13 04:37:45

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

毕竟,您清楚地指出,在您的数据库、网站中设置了UTF-8,并且您自己的set应用程序中的UI正确地插入了数据。因此,您唯一没有检查的是phpMyAdmin。我也会尝试使用mysql控制台客户端插入您的特殊字符串。当然,检查客户端中插入的数据,这些数据也设置为UTF-8输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15984163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档