L'éditeur suivant vous proposera un article sur la façon d'utiliser PHP pour convertir Unicode en UTF-8 (recommandé) . L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un œil
Les exemples sont les suivants :
function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{4})|.{4};|\d+;|.+/U",$str,$r); $ar = $r[0]; //print_r($ar); foreach($ar as $k=>$v) { if(substr($v,0,2) == "%u"){ $ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,-4))); } elseif(substr($v,0,3) == ""){ $ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,3,-1))); } elseif(substr($v,0,2) == "") { $ar[$k] = iconv("UCS-2BE","UTF-8",pack("n",substr($v,2,-1))); } } return join("",$ar); } echo unescape("紫星蓝");
iconv('UCS-2',
'GBK',
'Chinese')
Google
'GBK',
'Chinese')
Essayez-le, le chinois est normal
Encodage UCS-2 :
1. UCS-2 n'est pas égal à UTF-16. UTF-16 encode chaque octet en utilisant la plage de caractères ASCII, tandis que UCS-2 peut encoder chaque octet au-delà de la plage de caractères ASCII. UCS-2 et UTF-16 occupent jusqu'à deux octets par caractère, mais leurs encodages sont différents.
2. Pour UCS-2, la valeur par défaut sous Windows est UCS-2LE. L'utilisation de MultibyteToWidechar (ou A2W) génère l'unicode UCS-2LE. Le Bloc-notes Windows peut enregistrer du texte au format UCS-2BE, ce qui équivaut à des couches de conversion supplémentaires.
3. Pour UCS-2, la valeur par défaut sous Linux est UCS-2BE. Utilisez iconv (spécifiez UCS-2) pour convertir et générer l'unicode UCS-2BE. Si vous convertissez UCS-2 depuis la plate-forme Windows, vous devez spécifier UCS-2LE.
4. Compte tenu des différentes compréhensions d'UCS-2 sur plusieurs plateformes telles que Windows et Linux (UCS-2LE, UCS-2BE). MS préconise que l'Unicode ait un indicateur de démarrage (UCS-2LE FFFE, UCS-2BE FEFF) pour indiquer que les caractères suivants sont Unicode et identifier le big-endian ou le small-endian. Par conséquent, si les données provenant de la plateforme Windows portent ce préfixe, pas de panique.
5. La sortie d'encodage Linux, telle que la sortie d'un fichier ou la sortie de printf, nécessite une correspondance d'encodage appropriée sur la console (si l'encodage ne correspond pas, c'est généralement le cas). compilé avec le programme Il existe plusieurs relations avec l'encodage à l'époque), et l'entrée de conversion de la console doit vérifier l'encodage actuel du système. Par exemple, si l'encodage actuel de la console est UTF-8, alors les éléments encodés en UTF-8 peuvent être affichés correctement, mais GBK ne peut pas de même, si l'encodage actuel est GBK, l'encodage GBK peut être affiché ; . Les systèmes ultérieurs devraient être mis à jour. Gestion plus intelligente d’un plus grand nombre de conversions. Cependant, via des terminaux tels que putty, vous devez toujours configurer la conversion d'encodage du terminal pour éliminer le problème des caractères tronqués.
La méthode d'implémentation ci-dessus (recommandée) pour convertir Unicode en UTF-8 à l'aide de PHP est tout le contenu partagé par l'éditeur. J'espère qu'elle pourra vous donner une référence, et j'espère également que vous prendrez en charge le site Web chinois php. .