suchen
HeimBackend-EntwicklungPHP-TutorialPHP generiert unter Mac eine CSV-Datei mit verstümmelten Zeichen

Dieser Artikel stellt hauptsächlich PHP zum Generieren von verstümmeltem CSV-Code unter Mac vor. Jetzt kann ich ihn mit allen teilen, die ihn benötigen


<?php
     $file_name = date(&#39;Ymd&#39;, time()) . &#39;.csv&#39;;  //设置文件名
     header(&#39;Content-Type: application/vnd.ms-excel&#39;);
header(&#39;Content-Disposition: attachment;filename=&#39;.$file_name);
header(&#39;Cache-Control: max-age=0&#39;);
$fp = fopen(&#39;php://output&#39;, &#39;a&#39;);
$row = [
&#39;name&#39; => &#39;测试&#39;,
&#39;email&#39; => 111111,
&#39;mobile&#39; => 22222,
&#39;weixinid&#39; => &#39;微信号&#39;,
];
fwrite($fp,"\xEF\xBB\xBF");
fputcsv($fp, $row);


Lösung für das verstümmelte Problem der von PHP exportierten CSV-Datei



Bevor wir über diese Frage sprechen, sprechen wir zunächst darüber, was eine CSV-Datei ist. Komma-Trennwert (durch Kommas getrennter Wert) ist ebenfalls vorhanden. Es gibt Zwischendateien, die häufig für die Datenkonvertierung verwendet werden, z. B. zum Exportieren von Daten von MySQL nach CSV und zum Importieren von CSV in SqlServer. Verwenden Sie ein PHP-Skript unter Linux, um die Tabellendaten entsprechend den Bedingungen aus der MySQL-Datenbank in CSV zu exportieren. Verwenden Sie die UTF-8-Kodierung, um die CSV-Datei zu exportieren. Nach dem Öffnen wird das Chinesisch darin verstümmelt (CSV-Dateien unter Windows sind mit Microsoft Excel verknüpft). Standardmäßig wird Notepad++ verwendet oder Word wird normal geöffnet, aber das Layout ist unübersichtlich. Grund: BOM ist in Schwierigkeiten, Microsoft ist in Schwierigkeiten.

Was ist Stückliste? Byte Order Mark (Bit Order Mark) ist ebenfalls vorhanden.

Um Unicode-Dateien zu erkennen, empfiehlt Microsoft, dass alle Unicode-Dateien mit dem Zeichen ZERO WIDTH NOBREAK SPACE beginnen. Dies dient als „Signatur“ oder „Byte-Order-Markierung (BOM)“, um die in der Datei verwendete Codierung und Byte-Reihenfolge (Big-Endian oder Little-Endian) zu identifizieren. Die spezifische Entsprechung ist in der folgenden Tabelle aufgeführt.

Bytes-Codierungsform

00 00 FE FF UTF-32, big-endian
FF FE 00 00 UTF-32, little-endian
FE FF UTF-16, big-endian
FF FE UTF-16, little-endian
EF BB BF UTF-8


BOM wird in Unix-ähnlichen Systemen nicht verwendet, da dadurch bestehende ASCII-Syntaxkonventionen zerstört werden für Dateien.

Implementieren Sie den Code, wenn

Hinweis: Stellen Sie beim Schreiben der CSV-Datei sicher, dass der PHP-Quellcode utf-8 ist, keine Stückliste hat und gibt nichts aus.




Wenn Excel CSV liest, liest es den Dateikopf. Die Stückliste wird verwendet um die Kodierung zu identifizieren. Wenn der Dateiheader keine Stücklisteninformationen enthält, wird er standardmäßig gemäß der Unicode-Kodierung gelesen. (Diese Stückliste ist ein von Microsoft selbst definiertes Datei-Header-Protokoll. Wie der Name schon sagt, wird es im Datei-Header gespeichert. Der gespeicherte Inhalt ist die Information, die die Dateikodierung identifiziert.)

Die Plattform, die wir verwenden CSV generieren folgt nicht unbedingt dem BOM-Protokoll von Microsoft. Wenn eine nicht Unicode-codierte CSV-Datei (z. B. utf-8) ausgegeben wird und keine BOM-Informationen generiert werden, liest Excel automatisch entsprechend der Unicode-Codierung und verstümmelte Zeichen treten auf .

Nachdem ich das gemeistert habe, glaube ich, dass verstümmelte Zeichen uns nicht länger davon abhalten können, weiterzumachen: Öffnen Sie einfach die nicht-Unicode-codierte CSV-Datei mit einem Texteditor (Notepad++ wird empfohlen) und konvertieren Sie sie mit in die Codierungsform Stückliste (insbesondere Die Codierungsmethode ist beliebig), das Problem ist gelöst.

Verwandte Empfehlungen:

PHP generiert eine eindeutige RequestID-Klasse

Ein detailliertes Beispiel, wie PHP eine .csv-Suffixdateitabelle generiert


Das obige ist der detaillierte Inhalt vonPHP generiert unter Mac eine CSV-Datei mit verstümmelten Zeichen. 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
Erläutern Sie das Konzept einer PHP -Sitzung in einfachen Worten.Erläutern Sie das Konzept einer PHP -Sitzung in einfachen Worten.Apr 26, 2025 am 12:09 AM

PhpSessionStrackUserDataacrossMultiplePageRequestsusesuseiquiTIdStoredInacookie.her'ShowtomagetheFectiv: 1) StartaSessionswithSession_start () und storateatain $ _Session.2) regeneratethessionSessionInoginWithSession_IDENT_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTEL

Wie schleifen Sie alle in einer PHP -Sitzung gespeicherten Werte durch?Wie schleifen Sie alle in einer PHP -Sitzung gespeicherten Werte durch?Apr 26, 2025 am 12:06 AM

In PHP können durch Sitzungsdaten in den folgenden Schritten iteriert werden: 1. Starten Sie die Sitzung mit Session_Start (). 2. Iterieren Sie durch die Foreach-Schleife durch alle Schlüsselwertpaare im $ _Session-Array. 3. Wenn Sie komplexe Datenstrukturen verarbeiten, verwenden Sie is_array () oder is_object () Funktionen und verwenden Sie print_r (), um detaillierte Informationen auszugeben. 4. Bei der Optimierung von Traversal kann Paging verwendet werden, um eine gleichzeitige Verarbeitung großer Datenmengen zu vermeiden. Auf diese Weise können Sie PHP -Sitzungsdaten in Ihrem tatsächlichen Projekt effizienter verwalten und verwenden.

Erklären Sie, wie Sie Sitzungen für die Benutzerauthentifizierung verwenden.Erklären Sie, wie Sie Sitzungen für die Benutzerauthentifizierung verwenden.Apr 26, 2025 am 12:04 AM

Die Sitzung realisiert die Benutzerauthentifizierung über den serverseitigen Statusverwaltungsmechanismus. 1) Erstellung der Sitzung und Erzeugung eindeutiger IDs, 2) IDs werden durch Cookies weitergeleitet, 3) Server speichert und greift auf Sitzungsdaten über IDs, 4) Benutzerauthentifizierung und Statusverwaltung zugeordnet und verbessert die Sicherheit und die Benutzererfahrung von Anwendungen.

Geben Sie ein Beispiel dafür, wie Sie den Namen eines Benutzers in einer PHP -Sitzung speichern.Geben Sie ein Beispiel dafür, wie Sie den Namen eines Benutzers in einer PHP -Sitzung speichern.Apr 26, 2025 am 12:03 AM

TostoreaussersnameInaphpSession, startTheSessionwithSession_Start (), thenAnthenameto $ _Session ['Benutzername']

Was sind einige häufige Probleme, die dazu führen können, dass PHP -Sitzungen scheitern?Was sind einige häufige Probleme, die dazu führen können, dass PHP -Sitzungen scheitern?Apr 25, 2025 am 12:16 AM

Gründe für einen Phpessionsfehler sind Konfigurationsfehler, Cookie -Probleme und Sitzungsablauf. 1. Konfigurationsfehler: Überprüfen Sie die richtige Sitzung und setzen Sie die korrekte Sitzung. 2. Kookie -Problem: Stellen Sie sicher, dass der Cookie korrekt eingestellt ist. 3.Sesion läuft ab: Passen Sie die Sitzung an.

Wie debuggen Sie Probleme im Zusammenhang mit Sitzungen in PHP?Wie debuggen Sie Probleme im Zusammenhang mit Sitzungen in PHP?Apr 25, 2025 am 12:12 AM

Zu den Methoden zur Debugg -Sitzungsprobleme in PHP gehören: 1. Überprüfen Sie, ob die Sitzung korrekt gestartet wird. 2. Überprüfen Sie die Lieferung der Sitzungs -ID; 3. Überprüfen Sie den Speicher und das Lesen von Sitzungsdaten. 4. Überprüfen Sie die Serverkonfiguration. Durch Ausgabe von Sitzungs-ID und Daten, Anzeigen von Sitzungsdateiinhalten usw. können Sie effektiv Diagnose und Lösen von Sitzungen im Zusammenhang mit Sitzungen diagnostizieren und lösen.

Was passiert, wenn Session_Start () mehrmals aufgerufen wird?Was passiert, wenn Session_Start () mehrmals aufgerufen wird?Apr 25, 2025 am 12:06 AM

Mehrere Anrufe bei Session_Start () führen zu Warnmeldungen und möglichen Datenüberschreibungen. 1) PHP wird eine Warnung ausstellen und veranlassen, dass die Sitzung gestartet wurde. 2) Dies kann zu unerwarteten Überschreibungen von Sitzungsdaten führen. 3) Verwenden Sie Session_Status (), um den Sitzungsstatus zu überprüfen, um wiederholte Anrufe zu vermeiden.

Wie konfigurieren Sie die Sitzungslebensdauer in PHP?Wie konfigurieren Sie die Sitzungslebensdauer in PHP?Apr 25, 2025 am 12:05 AM

Das Konfigurieren des Sitzungslebenszyklus in PHP kann durch Einstellen von Sitzungen erreicht werden. 1) Session.gc_maxLifetime steuert die Überlebenszeit der serverseitigen Sitzungsdaten, 2) Sitzung.cookie_Lifetime steuert den Lebenszyklus von Client-Cookies. Wenn der Keks auf 0 eingestellt ist, läuft es, wenn der Browser geschlossen ist.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor