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

藏色散人
Libérer: 2023-03-02 06:42:01
original
2880 Les gens l'ont consulté

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>";
?>
Copier après la connexion

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;
?>
Copier après la connexion

À 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] )
**/
Copier après la connexion

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;];
Copier après la connexion

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");
Copier après la connexion

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;);
Copier après la connexion

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;;
?>
Copier après la connexion

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 ~]#
Copier après la connexion

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!

É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