php数组使用json_encode函数中文被编码成null的原因和解决办法

作者:神秘网友 发布时间:2021-02-28 10:20:07

php数组使用json_encode函数中文被编码成null的原因和解决办法

json格式在开发中用的十分广泛。在php中json_encode函数可以直接将数组转成 json格式,十分方便。但是有可能你在使用json_encode函数时,无奈的发现中文被编码成null了。原来json只支持转义utf-8编码格式的中文。

所以如果你是数据是gbk格式或者gb2312格式 那么你就需要转码

header("Content-Type:text/html;charset=gb2312");
    $name = trim($_GET['name']);
    $data = $db-query("select name from engine where source=N'{$name}'");
    // 调用转码函数
    $datas = array_iconv($data);
    print_r(json_encode($datas));die();/**
 * [array_iconv 进行转码因为json函数支持gbk格式]
 * @param  [type] $arr         [description]
 * @param  string $in_charset  [description]
 * @param  string $out_charset [description]
 * @return [type]              [description]
 */
function array_iconv($arr, $in_charset = "gb2312", $out_charset = "utf-8") {
    $ret = eval('return ' . iconv($in_charset, $out_charset, var_export($arr, true)) . ';');
    return $ret;
}

此处我数据库查出来的数据是gb2312格式所以导致我json返回的中文一直为空,所以在返回的时候进行一下转码就好了

array_iconv这个函数就是作为转码使用

输出结果

这是未转码的

这是经过转码的

直接调用函数传值进去就行



php数组使用json_encode函数中文被编码成null的原因和解决办法 相关文章

  1. Windows下QtCreator使用CMake编译GUI程序

    一、前言 为什么要用 CMake 来构建 Qt 的项目呢Qt 不是有 qmake 吗这样,岂不是多此一举 其实,应用 CMake 来构建项目还是非常有必要的,特别是当你的项目涉及到很多第三方库的时候,CMake 的优势非常突出。 Qt5.15.2 在之前选择安装模块的时候,自动帮我们

  2. ThinkPHP 原生分页功能改进,更好用更美观

    编写自定义类 在 thinkphp\library\think\paginator\driver 目录下新建php类文件,如名称为TpPage.php namespace think\paginator\driver;use think\Paginator;class TpPage extends Paginator { //首页 protected function home() { if ($this-currentPage(

  3. 适合高并发情况下使用的分片map

    原始的解决方案 解决办法 代码 结构的定义 创建 Get、Set、Del 计数 获取全部键值对 清空 分片选取 性能测试 测试环境 并行情况下getset 非并行获取键值对 单独测试清空 不足 参考toc 原始的解决方案 go自带的map不是goroutine安全的,为解决这个问题,最简单

  4. 关于多态性的使用

    package day01;/** * 多态:可以理解为一种事物的多种形态 * 对象的多态性:父类的引用指向子类的对象 (或是子类的对象赋给父类的引用) *多态的使用:虚拟方法调用,有了对象的多态性以后,在编译期间,只能调用父类中声明的方法,但是在运行期间,实际调

  5. 使用pyftpdlib搭建ftp服务器

    ftp主动模式:控制平面建立后,数据平面是由服务器20端口反向连接客户端 ftp被动模式:控制平面建立后,数据平面由客户端连接服务器端指定的其他端口(需要防火墙开启服务器端额外的指定端口) 代码(来自官网): 1,服务器端 - 主动模式 from pyftpdlib.aut

  6. php 无法上传大文件怎么办

    php无法上传大文件的解决办法:1、开启临时文件并对该文件夹设置写入的权限;2、增加“max_execution_time”的值;3、设置“file_uploads”的值为on;4、设定“upload_max_filesize=20M”等。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 php上传大

  7. php文件gbk怎么转utf8

    php文件gbk转utf8的方法:首先建立存放转换后文件的目录;然后建立对应的文件夹;最后通过“-exec iconv -f GBK -t UTF-8 {} -o utf8/...”方法转换php文件即可。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 将PHP文件GBK转为UTF-8 gbk转换为utf8 [

  8. php addslashes 转义的方法

    php addslashes转义的方法:首先创建一个PHP示例文件;然后定义一个字符串;最后通过“addslashes($str)”向字符串中的预定义字符添加反斜杠即可。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 addslashes定义和用法 addslashes() 函数返回在预定义

  9. php怎么去掉字符串前几位

    php去掉字符串前几位的方法:首先创建一个PHP示例文件;然后定义一个字符串;最后通过“substr($str, 4);”语句删除字符串的前4个字符即可。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 用PHP删除字符串的前4个字符? 可以使用该substr函数从第5个

  10. php怎么去掉字符串中空格

    php去掉字符串中空格的方法:1、使用正则表达式删除字符串中间的空格及去除字符串首尾空格;2、使用str_replace和strtr函数删除字符串中间的空格;3、使用trim函数去除一个字符串两端空格。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 php中3种方法

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2020, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词