Maison >développement back-end >Problème PHP >Comment utiliser php pour convertir Unicode et utf8 ?
Comment utiliser PHP pour convertir l'unicode et l'utf8 : Tout d'abord, il n'est pas nécessaire de considérer l'encodage [4-6] octets puis si des caractères [utf-8] de plus de quatre octets apparaissent, ils peuvent être directement considérés comme des caractères tronqués. Ignorez-le simplement ou convertissez-le sous forme d'entité Unicode, le code est [$utf8char = "{$c};"].
Comment utiliser php pour convertir Unicode et utf8 :
L'encodage Unicode consiste à implémenter utf-8 et gb series La base de la conversion de l'encodage (gb2312, gbk, gb18030). Bien que nous puissions également faire directement un tableau de comparaison de utf-8 à ces encodages, peu de gens le feront car l'encodage variable de utf-8 est incertain. En général, le tableau de comparaison entre l'encodage Unicode et GB est utilisé. Unicode (UCS-2) est en fait l'encodage de base de utf-8, et utf-8 n'en est qu'une implémentation. Les deux ont la correspondance suivante :
.
>u0000 0080 - u0000 07FF | 10xxxxxx
/* * 参数 $c 是unicode字符编码的int类型数值,如果是用二进制读取的数据,在php中通常要用 hexdec(bin2hex( $bin_unichar )) 这样转换 */ function uni2utf8( $c ) { if ($c < 0x80) { $utf8char = chr($c); } else if ($c < 0x800) { $utf8char = chr(0xC0 | $c >> 0x06).chr(0x80 | $c & 0x3F); } else if ($c < 0x10000) { $utf8char = chr(0xE0 | $c >> 0x0C).chr(0x80 | $c >> 0x06 & 0x3F).chr(0x80 | $c & 0x3F); } //因为UCS-2只有两字节,所以后面的情况是不可能出现的,这里只是说明unicode HTML实体编码的用法。 else { $utf8char = "&#{$c};"; } return $utf8char; }Dans le cadre de l'environnement actuel, on peut considérer que le jeu de caractères utf-8 == unicode (UCS-2). ), mais en théorie, la relation d'inclusion des relations du jeu de caractères principal est la suivante :
utf-8 > unicode(UCS-2) > gb18030 > gbk > gb2312Par conséquent, si l'encodage Lorsque les deux sont corrects :
gb2312 => gbk => gb18030 => unicode(UCS-2) => utf-8Un tel le processus de transformation est fondamentalement sans perte, mais au contraire, de
utf-8 => unicode(UCS-2) => gb18030=> gbk => gb2312Dans un tel processus de conversion, il est très probable qu'il y ait des caractères méconnaissables. Par conséquent, si le système utilise UTF-. 8, essayez de ne pas inverser facilement l’opération d’encodage.
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!