In Laravel ist die Verwendung von Maatwebsite/Laravel-Excel eine sehr bequeme Möglichkeit, Excel-Dateien zu verarbeiten. Wenn die importierte Excel-Datei jedoch manchmal Chinesisch enthält, zeigt Laravel die chinesischen Zeichen in der Datenbank manchmal nicht korrekt an. In diesem Artikel wird dieses Problem untersucht und einige Lösungen bereitgestellt.
Problembeschreibung
Bei der Verwendung von Maatwebsite/Laravel-Excel zum Importieren von Tabellen in Laravel-Anwendungen werden chinesische Schriftzeichen manchmal verstümmelt oder falsch angezeigt. Dieses Problem tritt normalerweise in den folgenden Situationen auf:
Lösung
In Laravel bezieht sich die Datenbankkodierung auf die Datei AppServiceProvider.php. In dieser Datei können Sie die Datenbankkodierung festlegen. Wenn Sie eine MySQL-Datenbank verwenden, können Sie diese in dieser Datei festlegen:
use IlluminateSupportServiceProvider;
use IlluminateSupportFacadesSchema;
class AppServiceProvider erweitert ServiceProvider
{
public function boot() { Schema::defaultStringLength(191); DB::statement('SET NAMES utf8mb4'); DB::statement('SET CHARACTER SET utf8mb4'); }
}
Im obigen Code haben wir die Datenbankkodierung auf eingestellt utf8mb4 kann das Problem gelöst werden, indem die Codierung in der Datei so eingestellt wird, dass sie mit der in der Excel-Datei übereinstimmt.
Wenn die Kodierungsmethode in Ihrer Excel-Datei nicht mit der tatsächlichen Kodierungsmethode übereinstimmt, tritt beim Import das Problem verstümmelter chinesischer Zeichen auf. Daher müssen wir vor dem Import der Excel-Datei sicherstellen, dass die Excel-Datei korrekt codiert ist. Eine einfache Möglichkeit ist:
Speichern Sie die Excel-Datei vor dem Öffnen als TXT-Datei und importieren Sie dann die TXT-Datei. Dadurch wird sichergestellt, dass die Kodierung korrekt ist.
Zum Beispiel:
$reader = MaatwebsiteExcelExcel::load('excel.xls')->toCsv('excel.csv');
$csvData = file_get_contents('excel.csv');
$csvData = mb_convert_encoding ($csvData, 'UTF-8', 'UTF-8');
$csvFile = fopen('excel.csv', 'w');
fwrite($csvFile, $csvData);
fclose($csvFile ) ;
$reader = MaatwebsiteExcelExcel::load('excel.csv')->get();
In diesem Beispiel konvertieren wir die Excel-Datei in eine CSV-Datei und konvertieren sie dann in die UTF-8-Kodierung. Bitte beachten Sie, dass dieser Ansatz nicht der beste ist und Sie möglicherweise weitere Anpassungen vornehmen müssen, um die Richtigkeit Ihrer Daten sicherzustellen.
Fazit
Der Umgang mit dem Problem der chinesischen Schriftzeichen ist keine leichte Aufgabe. Nach der Diskussion in diesem Artikel haben wir jedoch die grundlegenden Lösungen verstanden. Sollten weiterhin Probleme mit Fehlern beim Import chinesischer Zeichen auftreten, überprüfen Sie bitte weiterhin die Codierung Ihrer Datenbank und Excel-Datei und nehmen Sie die erforderlichen Anpassungen vor.
Das obige ist der detaillierte Inhalt vonLaravel Import Excel Chinesisch wird nicht angezeigt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!