Collection de solutions aux caractères chinois tronqués transmis dans la barre d'adresse URL php

高洛峰
Libérer: 2023-03-04 18:54:01
original
1645 Les gens l'ont consulté

Le $_GET chinois dans la barre d'adresse php est tronqué, et l'utilisation de urlencode et urldecode est expliquée en détail
encodage d'url
Syntaxe : string urlencode(string str);
Valeur de retour : string
Type de fonction : Traitement de l'encodage
Par exemple :

<?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 de l'encodage
Par exemple :
Traiter et afficher le texte chinois précédemment transmis

<?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); 🎜> /**
* Fonction de conversion d'encodage de chaîne multi-octets
*
* @param string str La chaîne qui doit être encodée et convertie
* @param string to_encoding spécifie la conversion vers un certain encodage, tel que : gb2312, gbk, utf-8, etc.
* @param Mixed from_encoding spécifie de manière mixte l'encodage de la chaîne d'origine, tel que : spécifiez l'encodage mixte JIS, eucjp-win, sjis-win en même temps
* @return string
string mb_convert_encoding ( string str, string to_encoding [, mixte from_encoding] )
**/
mb_convert_encoding est la fonction de conversion d'encodage de chaîne multi-octets interne de PHP, qui peut prendre en charge presque tous les encodages en cas de besoin. PHP >= 4.0.6, 5 versions prises en charge.

Obtenir reg.php?gh=XX directement

// Paramètres de connexion à l'Union

$gonghui = $_GET['gh'];

Le $gonghui obtenu est codé en gb2312 et affiché sur la page Web utf-8 pour afficher les caractères tronqués

remplacé par

// Paramètres de connexion de l'Union

$gonghui = $_GET['gh' ];
$gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");

Il s'affichera normalement

Convertir la page entière

Cette méthode fonctionne dans 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 (une référence de caractère numérique, telle que « caractères chinois » sera convertie en « caractères chinois »). dans n’importe quel environnement d’encodage.

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

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 l'extension mbstring (chaîne multi-octets) de PHP.

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

//Méthode 1 urldecode
$url = 'aaa.php?region='.urldecode("Province du Sichuan");
< ; a href="">aaa

//Méthode 2 base64_encode

$test1=base64_encode($test);
echo 'aaa '
?>

Utilisez base64_decode pour décoder une autre page

base64_decode($region);

//La méthode 3 permet au serveur de prendre en charge le chinois

[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. -8"
lc_all=
[root@dhcp ~]#

Pour plus de solutions aux caractères chinois tronqués dans la barre d'adresse de l'URL PHP, veuillez faire attention au site Web PHP 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!