Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn PHP-Bom verstümmelte chinesische Zeichen enthält?

Was tun, wenn PHP-Bom verstümmelte chinesische Zeichen enthält?

藏色散人
藏色散人Original
2021-12-01 10:18:132085Durchsuche

Lösung für verstümmelten PHP-Bom-Code: 1. Öffnen Sie die entsprechende PHP-Entwicklungsdatei. 2. Fügen Sie „$bom = pack("C3",239,187,191);$strcsv =$bom.$strcsv;“ hinzu.

Was tun, wenn PHP-Bom verstümmelte chinesische Zeichen enthält?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.4, DELL G3-Computer

php bom Was tun mit chinesischen verstümmelten Zeichen?

Das durch BOM in der PHP-Entwicklung verursachte Problem mit verstümmeltem Code

Im Projekt muss es in PHP sein Laden Sie die CSV-Datei direkt herunter, aber nach dem Herunterladen der Datei werden in Excel verstümmelte Zeichen angezeigt. Um die Stückliste zu erhöhen, lautet die Methode wie folgt:

$bom = pack("C3",239,187,191);   //bom: xEFxBBxBF
$strcsv =$bom.$strcsv;

Das Folgende ist eine prägnantere Erklärung aus dem Internet:

Stücklistenbeschreibung: In der UCS-Codierung gibt es ein Zeichen namens „ZERO WIDTH NO-BREAK SPACE“. und seine Kodierung ist FEFF . FEFF ist ein Zeichen, das in UCS nicht existiert und daher in der tatsächlichen Übertragung nicht vorkommen sollte. Die UCS-Spezifikation empfiehlt, dass wir vor der Übertragung des Bytestreams die Zeichen „ZERO WIDTH NO-BREAK SPACE“ übertragen. Wenn der Empfänger FEFF empfängt, zeigt er auf diese Weise an, dass der Bytestrom Big-Endian ist. Wenn er FFFE empfängt, zeigt er an, dass der Bytestrom Little-Endian ist. Daher wird das Zeichen „ZERO WIDTH NO-BREAK SPACE“ auch BOM genannt.

UTF-8 erfordert keine Stückliste zur Angabe der Bytereihenfolge, kann jedoch die Stückliste zur Angabe der Kodierungsmethode verwenden. Die UTF-8-Kodierung des Zeichens „ZERO WIDTH NO-BREAK SPACE“ ist EF BB BF. Wenn der Empfänger also einen Bytestrom empfängt, der mit EF BB BF beginnt, weiß er, dass dieser UTF-8-codiert ist. Windows verwendet BOM, um die Kodierung von Textdateien zu markieren.

PHP hat das Stücklistenproblem beim Entwerfen nicht berücksichtigt, was bedeutet, dass die drei Zeichen der Stückliste am Anfang der UTF-8-codierten Datei nicht ignoriert werden.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP-Bom verstümmelte chinesische Zeichen enthält?. 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