Heim > Artikel > Backend-Entwicklung > Wie verwende ich PHP, um Unicode und UTF8 zu konvertieren?
So verwenden Sie PHP zum Konvertieren von Unicode und utf8: Erstens besteht keine Notwendigkeit, die [4-6]-Byte-Kodierung zu berücksichtigen. Wenn dann [utf-8]-Zeichen mit mehr als vier Bytes angezeigt werden, Sie können direkt als verstümmelte Zeichen betrachtet werden. Ignorieren Sie sie einfach oder konvertieren Sie sie in die Unicode-Entitätsform. Der Code lautet [$utf8char = "{$c};"].
So verwenden Sie PHP zum Konvertieren von Unicode und UTF8:
Die Unicode-Kodierung dient der Implementierung von UTF-8 und GB Die Grundlage für die Konvertierung der Codierung (gb2312, gbk, gb18030) ist, dass wir auch direkt eine Vergleichstabelle von utf-8 zu diesen Codierungen erstellen können, da die variable Codierung von utf-8 unsicher ist Im Allgemeinen wird die Vergleichstabelle zwischen Unicode und GB-Codierung verwendet. Unicode (UCS-2) ist tatsächlich die grundlegende Codierung von utf-8, und utf-8 ist nur eine Implementierung davon. Die beiden haben die folgende Entsprechung
>u0000 0080 - u0000 07FF |. 110xxxxx 10xxxxxx
u0000 0800 - u0000 FFFF | xxxxxx 10xxxxxx
Aufgrund der derzeit von utf-8 verwendeten Zeichen sind sie alle in UCS-2, sodass die 4-6-Byte-Codierung nicht berücksichtigt werden muss. Ebenso gilt dies bei der umgekehrten Konvertierung, wenn mehr Wenn mehr als vier Byte UTF-8-Zeichen angezeigt werden, können diese direkt als verstümmelte Zeichen betrachtet oder in die Unicode-Entitätsform („long int;“-Form) konvertiert und dann an den Browser oder ein entsprechendes Analyseprogramm übergeben werden Der Algorithmus zum Konvertieren von Unicode in UTF-8-Kodierung mit PHP lautet wie folgt:
/* * 参数 $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; }
Im Rahmen der aktuellen Umgebung kann davon ausgegangen werden, dass UTF-8-Zeichensatz == Unicode (UCS-2 ), aber theoretisch ist die Inklusionsbeziehung der Hauptzeichensatzbeziehungen wie folgt:
utf-8 > unicode(UCS-2) > gb18030 > gbk > gb2312
Daher, wenn die Codierung Wenn beide korrekt sind:
gb2312 => gbk => gb18030 => unicode(UCS-2) => utf-8
So ein Der Transformationsprozess ist grundsätzlich verlustfrei, aber im Gegenteil, von
utf-8 => unicode(UCS-2) => gb18030=> gbk => gb2312
Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung
Das obige ist der detaillierte Inhalt vonWie verwende ich PHP, um Unicode und UTF8 zu konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!