Maison > développement back-end > tutoriel php > Solution aux caractères chinois tronqués lors de la lecture de données mssql json avec PHP

Solution aux caractères chinois tronqués lors de la lecture de données mssql json avec PHP

高洛峰
Libérer: 2023-03-04 11:24:02
original
1465 Les gens l'ont consulté

PHP et les pages Web utilisent le codage UTF-8, et la base de données est SQL Server2008, en utilisant le codage par défaut (936, qui est le codage GBK)

Lors de la lecture des données de la base de données, utilisez le json_encode( fourni avec PHP) ) revient au front-end, les résultats ne sont pas affichés en chinois.

La solution est la suivante :

De cette façon, le chinois dans SQL Server 2008 peut être affiché normalement sur la page Web.

Si vous souhaitez insérer normalement le chinois dans SQL Server 2008, vous devez également ajouter un code : $query = iconv("utf-8", "gbk//ignore", $query) ;/ /Afin de résoudre le problème du chinois tronqué

Le code complet est le suivant :

<?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 &#39;../conn.php&#39;;
$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&#39;$employeeID&#39;,N&#39;$employeeName&#39;,N&#39;$department&#39;, 
getdate(), getdate())";
}else{//如果seq已存在则更新已有记录
$query = "UPDATE employees SET employeeID=&#39;$employeeID&#39;, 
employeeName=&#39;$employeeName&#39;,department=&#39;$department&#39;,
updateTime=getdate() 
WHERE seq=&#39;$seq&#39;";
}
// 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;
?>
Copier après la connexion

Ce qui précède est la solution introduite par l'éditeur pour lire le mssql chinois tronqué données json avec PHP. J'espère que cela aidera tout le monde !

Pour plus d'articles sur la façon de résoudre les caractères chinois tronqués lors de la lecture de données mssql json avec PHP, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal