Maison >développement back-end >Problème PHP >Résumé des solutions aux caractères chinois tronqués de l'URL php

Résumé des solutions aux caractères chinois tronqués de l'URL php

藏色散人
藏色散人original
2020-07-07 09:40:212883parcourir

Solutions aux URL php tronquées en chinois : 1. Utilisez la fonction "urlencode" pour résoudre le problème d'encodage de l'URL. La syntaxe est "string urlencode(string str);"; fonction "urldecode".

Résumé des solutions aux caractères chinois tronqués de l'URL php

Le $_GET chinois dans la barre d'adresse php est tronqué et l'utilisation de l'urlencode et de l'urldecode est expliquée en détail

Encodage d'url

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 : String

Type de fonction : Traitement d'encodage

Par exemple :

Traiter et afficher le texte chinois passé devant

Le code est le suivant :

<?php
$DecodeStr=urldecode($_GET[&#39;name&#39;]);//你可能不用解码都可以,因为浏览器会自动帮你解码
echo $DecodeStr;
?>

À propos du problème des caractères chinois tronqués obtenus à partir de l'url en utilisant la méthode get en PHP

Utilisez $gonghui = iconv("gb2312","UTF-8",$gonghui); un autre code de méthode

/**
* 多字节字符串编码转换函数
*
* @param string str 需要进行编码转换的字符串
* @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等
* @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码
* @return string
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
**/

mb_convert_encoding

fonction pour convertir php interne codage de chaîne multi-octets Les fonctions peuvent être utilisées partout où cela est nécessaire et prennent en charge presque tous les codages.

PHP >= 4.0.6, 5 versions prises en charge.

Obtenez directement reg.php?gh=XX ;

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

Le $gonghui obtenu est codé en gb2312 et affiché sur la page Web utf-8, qui affiche des caractères tronqués

est changé en

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

L'affichage sera normal

Convertir la page entière

Cette méthode est applicable à tous les environnements de codage. De cette façon, tous les jeux de caractères autres que les 128 premiers caractères (caractères d'affichage) sont représentés par NCR (les références de caractères numériques, telles que les « caractères chinois » seront converties en « caractères chinois »). 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 mb_convert_encoding nécessite d'activer la mbstring de PHP (multi -chaîne d'octets) extension .

Si l'extension mbstring de PHP n'est pas activée, vous devez définir les paramètres suivants pour permettre à PHP de prendre 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 de serveur Linux

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

La troisième méthode de référence d'autres internautes :

//方法一 urldecode
$url = &#39;aaa.php?region=&#39;.urldecode("四川省");
<a href="<?php echo $url;?>">aaa </a>
//方法二base64_encode
<?
$test="四川省";
$test1=base64_encode($test);
echo &#39;<a href="www.jb51.net?region=$test1">aaa </a>&#39;;
?>

Une autre page utilise base64_decode pour décoder

base64_decode($region);
//方法三让服务器支持中文
[root@dhcp ~]# locale
lang=zh_cn.utf-8
lc_ctype="zh_cn.utf-8"
lc_numeric="zh_cn.utf-8"
lc_time=c
lc_collate=c
lc_monetary="zh_cn.utf-8"
lc_messages="zh_cn.utf-8"
lc_paper="zh_cn.utf-8"
lc_name="zh_cn.utf-8"
lc_address="zh_cn.utf-8"
lc_telephone="zh_cn.utf-8"
lc_measurement="zh_cn.utf-8"
lc_identification="zh_cn.utf-8"
lc_all=
[root@dhcp ~]#

Pour plus de connaissances connexes, veuillez visiter le Site Web PHP chinois !

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