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

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

墨辰丷
Libérer: 2023-03-29 15:54:01
original
1693 Les gens l'ont consulté

PHP et les pages Web utilisent le codage UTF-8. La base de données est SQL Server2008 et utilise le codage par défaut. Lors de la lecture des données de la base de données, utilisez le json_encode() fourni avec PHP pour revenir au front-end. affiché en chinois. Ci-dessous, l'éditeur de Script House vous présentera la solution permettant à PHP de lire les données mssql json tronquées en chinois. Les amis qui en ont besoin peuvent apprendre ensemble

PHP et les pages Web utilisent l'encodage UTF-8, et la base de données est. sql server2008, en utilisant l'encodage par défaut (936, qui est l'encodage GBK)

Lors de la lecture des données de la base de données, utilisez le json_encode() fourni avec PHP pour revenir au front-end, et le résultat ne sera pas être affiché en chinois.

La solution est la suivante :

De cette façon, les chinois dans SQL Server 2008 peuvent être affichés normalement sur le web page.

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

Résumé : Ce qui précède est cet article. L'intégralité du contenu, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

phpMéthodes et significations de la mise en œuvre du modèle singleton

phpComment implémenter des fonctions de téléchargement et de découpe d'images basées sur la fonction CodeIgniter

php metaphone() et php Explication détaillée de l'exemple de fonction localeconv()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en 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