Maison > interface Web > js tutoriel > le corps du texte

Exemple d'analyse de la différence entre le navigateur IE et le navigateur FF lorsque la valeur du paramètre Ajax est chinoise

亚连
Libérer: 2018-05-24 13:52:25
original
1350 Les gens l'ont consulté

Cet article présente principalement la différence entre le navigateur IE et le navigateur FF lorsque la valeur du paramètre Ajax est chinoise. Il combine l'exemple d'analyse pour expliquer les précautions et les compétences d'utilisation liées au transcodage des paramètres dans le processus de transfert des paramètres ajax. peut se référer à

L'exemple de cet article décrit la différence entre le navigateur IE et le navigateur FF lorsque la valeur du paramètre Ajax est chinoise. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

J'ai déjà présenté "Les paramètres de transmission Javascript basés sur la fonction de rappel AJAX" Ici, nous analysons principalement la méthode de traitement tronquée pour différents navigateurs dans le processus d'ajax. passer des paramètres chinois.

Des caractères tronqués apparaissent lorsque Ajax transmet des paramètres en chinois. La situation que j'ai rencontrée est la suivante :

1. L'encodage de ma connexion à la base de données est GB2312, latin1_swedish_ci

2.php. Le format est UTF-8 et le codage d'affichage du navigateur est : UTF-8

3. Ma page s'affiche de deux manières :

1) Se charge automatiquement lorsque la page est chargée. , chacun rafraîchi chaque seconde

2) En cliquant sur le nom d'un groupe d'extension, obtenez les informations de la carte de membre correspondante du groupe d'extension

4. premier Traitement de cette situation :

Obtenir une session sur la page control.php :

Lire le contenu de la base de données :

ligne 53 :

$grouparr[] = iconv("GB2312","UTF-8",$g[0]); //数据库内容转换为 UTF-8,这样能正常显示页面上的中文
Copier après la connexion

line106 :

$_SESSION['dispatchgroup'] = iconv("UTF-8","GB2312",$grouparr[0]);//将转换的中文修改为 GB2312,用于在 dispatchinfo.php 文件中获得查询的条件值,获得GB2312编码的值。
Copier après la connexion

dispatchinfo.php : ligne 291

if($_SESSION['dispatchgroup']){
  $groupaddressinfo = function_listaddressesbygroup($_SESSION['dispatchgroup'],1,$value,0,$_SESSION['dispatchexten'],$_SESSION['dispatchgrouppage']);  
  //2013-5-17$groupaddressinfo = "listaddressesbygrouptype|0|LocalExt|1|12|1,,,801,空闲,,|1,,,802,不在线,,|1,,,803,空闲,,|1,,,804,不在线,,|,,,805,不在线,,|,,,806,不在线,,|,,,807,不在线,,|,,,808,不在线,,|,,,809,不在线,,|,,,810,不在线,,|5,餐厅,,811,10.1.6.189;连接|6,,,812,user2;断开|";
}
Copier après la connexion

Dans ce cas, IE et FF peuvent s'afficher normalement.

5. Pour le deuxième cas :

Cliquez sur le nom du "Groupe d'extensions" pour obtenir le nom chinois du groupe d'extensions cliqué et transmettez-le au fichier dispatchinfo2.php pour traitement via Ajax. .Avant la modification, le nom chinois et l'alerte obtenus après l'événement js click sont tous des valeurs normales [le format est UTF-8]. après le transcodage iconv.

Parce que seulement pour le premier cas, j'utilise la méthode d'encodage de conversion lors du traitement

$groupname = iconv("GB2312","UTF-8",$groupname);
Copier après la connexion

À ce moment, une erreur se produira lors de l'encodage à nouveau,

Solution :

Traitement de soumission asynchrone JS :

checkval(); 
var ajax = InitAjax();
var url = "dispatchinfo2.php?"+arges;
//2013-08-21 limx 中文编码问题
url = encodeURI(encodeURI(url));
ajax.open('GET',url,true);
Copier après la connexion

dispatchinfo2.php

$groupname = urldecode($groupname);
$groupname = iconv("utf-8","GB2312",$groupname);
Copier après la connexion

Quatre lignes de code résolvent parfaitement le problème de l'encodage chinois.

Étant donné que les données envoyées par AJAX sont envoyées en codage UTF-8, la conversion de l'encodage doit être effectuée côté serveur (ma page ici est encodée en GB2312, si c'est UTF-8 là ne devrait poser aucun problème avec cette étape), j'ai donc converti UTF-8 en GB2312 côté serveur

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir. .

Articles connexes :

Exemple d'analyse du problème de retour à la ligne de la valeur de retour des données de soumission asynchrone Ajax

Utilisation d'ajax dans SSH centre commercial en ligne Terminer la vérification asynchrone de l'existence du nom d'utilisateur

Analyse de l'ordre des données renvoyées par requête ajax

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!