PHP and web pages use UTF-8 encoding, and the database is sql server2008, using the default encoding (936, which is GBK encoding)
When reading database data, use PHP’s own json_encode( ) returns to the front end, the results are not displayed in Chinese.
The solution is as follows:
In this way, the Chinese in sql server 2008 can be displayed normally on the web page.
If you want to insert Chinese into sql server 2008 normally, you also need to add a code: $query = iconv("utf-8", "gbk//ignore", $query);/ /In order to solve the Chinese garbled problem
The complete code is as follows:
<?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; ?>
The above is the solution introduced by the editor to read Chinese garbled mssql json data with PHP. I hope it will be helpful to you. Everyone helps!
For more related articles on solutions to Chinese garbled Chinese characters when reading mssql json data with PHP, please pay attention to the PHP Chinese website!