Maison  >  Article  >  développement back-end  >  Que dois-je faire si des caractères chinois tronqués sont transmis dans la barre d'adresse URL php ?

Que dois-je faire si des caractères chinois tronqués sont transmis dans la barre d'adresse URL php ?

coldplay.xixi
coldplay.xixioriginal
2020-07-11 09:20:372631parcourir

Solutions aux caractères chinois tronqués transmis dans la barre d'adresse url php : 1. méthode urlencode, le code est [string urlencode(string str)] 2. méthode urldecode, le code est [string urldecode(string str) ; ].

Que dois-je faire si des caractères chinois tronqués sont transmis dans la barre d'adresse URL php ?

Solution aux caractères chinois tronqués dans la barre d'adresse php :

$_GET chinois dans la barre d'adresse php est tronquée, Explication détaillée de l'utilisation de urlencode et urldecode
url encodage

  • Syntaxe : string urlencode(string str);

  • Valeur de retour : Chaîne

  • Type de fonction : Traitement d'encodage

Par exemple :

Le code est le suivant :

<?php
$ChineseName="我的名字,是中文的哦";
$EncodeStr=urlencode($ChineseName);
echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>";
?>


décodage de l'url

  • Restaurer la chaîne encodée de l'URL

  • Syntaxe : string urldecode(string str);

  • Valeur de retour : Chaîne

  • Type de fonction : Traitement d'encodage

Par exemple :
Traiter et afficher le texte chinois précédemment passé

Le code est le suivant :

<?php$DecodeStr=urldecode($_GET[&#39;name&#39;]);
//你可能不用解码都可以,因为浏览器会自动帮你解码echo $DecodeStr;?>
关于php用get方法从url上获得的中文乱码问题使用
$gonghui = iconv("gb2312","UTF-8",$gonghui);
另一方法代码
/*** 
多字节字符串编码转换函数
** @param string str 需要进行编码转换的字符串
* @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等
* @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码
* @return stringstring mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
**/


mb_convert_encodingLa fonction est la fonction de conversion d'encodage de chaîne multi-octets interne de PHP, qui peut être trouvée dans Lorsque cela est nécessaire, presque tous les encodages sont pris en charge :

obtient directement reg.php?gh=something

//工会登入参
$gonghui = $_GET[&#39;gh&#39;];
obtient

et le produit en codage utf dans gb2312 8. Remplacez les caractères tronqués $gonghui

par

 //工会登入参数
 $gonghui = $_GET[&#39;gh&#39;];
 $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");

et cela apparaîtra normal

Convertissez l'intégralité. page.

Cette méthode est applicable à tous les environnements de codage. Les jeux de caractères autres que les 128 premiers caractères (caractères d'affichage) sont représentés par NCR (la référence de caractère numérique, telle que "caractères chinois" sera convertie en "chinois". caractères"). Cet encodage permet d'afficher la page normalement dans n'importe quel environnement d'encodage. .

Ajoutez les trois lignes de code suivantes en tête du fichier php :

Le code est le suivant :

mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码    
mb_http_output("HTML-ENTITIES");    
ob_start(&#39;mb_output_handler&#39;);

L'utilisation de la fonction

nécessite l'activation de l'extension mbstring (chaîne multi-octets) de PHP. mb_convert_encoding

Si l'extension mbstring de PHP n'est pas activée, vous devez définir les paramètres suivants. PHP prend en charge l'extension.

1. Environnement du serveur Windows

Modifiez le fichier php.ini, supprimez le ; devant extension=php_mbstring.dll et redémarrez le serveur Web.

2. Environnement serveur Linux

Ajoutez le paramètre de compilation --enable-mbstring=cn lors de la compilation de la configuration, puis compilez et installez PHP.

Recommandations d'apprentissage associées :

Programmation PHP de l'entrée à la maîtrise

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!

Déclaration:
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