当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-27 12:11:02 浏览: 评论:0 

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);//为了解决中文乱码问题

完整代码如下:

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

Tags: PHP读取mssql json

分享到: