加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.com/)- 应用安全、运维、云计算、5G、云通信!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-15 13:04:04 所属栏目:PHP教程 来源:互联网
导读:PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码,当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示,下面PHP粉丝小编给大家介绍PHP读取mssql json数据中文乱码的解决办法,需要的朋友一起学习 PHP及网页使用UTF-8
  PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码,当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示,下面PHP粉丝小编给大家介绍PHP读取mssql json数据中文乱码的解决办法,需要的朋友一起学习
 
  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."rn",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;
  ?>

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读