PHP读取mssql json数据中文乱码的解决办法

5年以前  |  阅读数:315 次  |  编程语言:PHP 

PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码)

当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示。

解决办法如下:

这样,sql server 2008中的中文就可以在网页正常显示了。

如果要将中文正常插入到sql server 2008中,还要加入一条代码:$query = iconv("utf-8", "gbk//ignore", $query);//为了解决中文乱码问题

完整代码如下 :


    <?php 
    /**
    * 如果员工编号在MySql中不存在则在MySql中插入员工记录
    * 如果该员工编号已经存在则进行更新操作
    */
    //如果用JSON格式则要使用text/html,不能使用text/xml
    header("Content-Type: text/html;charset=utf-8");
    // header("Content-Type: text/html;charset=GBK");
    //告诉浏览器不要缓存数据
    header("Cache-Control: no-cache");
    require '../conn.php';
    $seq = $_POST["seq"];
    $employeeID = $_POST["employeeID"];
    $employeeName = $_POST["employeeName"];
    $department = $_POST["department"];
    if(!isset($seq) || $seq == ""){//seq不存在则插入新记录
    $query = "INSERT INTO employees (employeeID, employeeName, department, 
    createTime, updateTime)
    VALUES (N'$employeeID',N'$employeeName',N'$department', 
    getdate(), getdate())";
    }else{//如果seq已存在则更新已有记录
    $query = "UPDATE employees SET employeeID='$employeeID', 
    employeeName='$employeeName',department='$department',
    updateTime=getdate() 
    WHERE seq='$seq'";
    }
    // file_put_contents("E:/mylog.log", $query."\r\n",FILE_APPEND);//用于调试
    <span style="color:#FF0000;">$query = iconv("utf-8", "gbk//ignore", $query);//为了解决中文乱码问题</span>
    if($result = sqlsrv_query($conn, $query)){
    echo true;
    }else{
    echo false;
    }
    // echo $query;
    ?>

以上所述是小编给大家介绍的PHP读取mssql json数据中文乱码的解决办法,希望对大家有所帮助!

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例