Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich PHP, um Unicode und UTF8 zu konvertieren?

Wie verwende ich PHP, um Unicode und UTF8 zu konvertieren?

coldplay.xixi
coldplay.xixiOriginal
2020-07-10 11:03:163181Durchsuche

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};"].

Wie verwende ich PHP, um Unicode und UTF8 zu konvertieren?

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

    Der Bereich des Unicode-Symbols |.
  • u0000 0000 007f |. 0xxxxxx
  • >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

Bei einem solchen Konvertierungsprozess ist es sehr wahrscheinlich, dass es nicht erkennbare Zeichen gibt. Wenn das System daher UTF verwendet. 8-Kodierung, versuchen Sie, den Kodierungsvorgang nicht einfach umzukehren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn