Rumah >rangka kerja php >Laravel >laravel import excel Chinese tidak dipaparkan

laravel import excel Chinese tidak dipaparkan

WBOY
WBOYasal
2023-05-20 22:22:36695semak imbas

Dalam Laravel, menggunakan Maatwebsite/Laravel-Excel ialah cara yang sangat mudah untuk memproses fail Excel. Walau bagaimanapun, kadangkala apabila fail Excel yang diimport mengandungi bahasa Cina, Laravel gagal memaparkan aksara Cina dalam pangkalan data dengan betul. Artikel ini akan meneroka masalah ini dan menyediakan beberapa penyelesaian.

Penerangan Masalah

Apabila menggunakan Maatwebsite/Laravel-Excel untuk mengimport jadual ke dalam aplikasi Laravel, kadangkala aksara Cina akan bercelaru atau dipaparkan secara tidak betul. Masalah ini biasanya berlaku dalam situasi berikut:

  1. Ketakpadanan pengekodan pangkalan data: Jika kaedah pengekodan pangkalan data tidak konsisten dengan kaedah pengekodan dalam fail Excel, aksara Cina akan rosak.
  2. Ralat pengekodan fail Excel: Jika kaedah pengekodan dalam fail Excel tidak konsisten dengan kaedah pengekodan sebenar, aksara Cina juga akan rosak.

Penyelesaian

  1. Semak pengekodan pangkalan data

Dalam Laravel, pengekodan pangkalan data berkaitan dengan fail AppServiceProvider.php. Anda boleh menetapkan pengekodan pangkalan data dalam fail ini. Jika anda menggunakan pangkalan data MySQL, anda boleh menetapkannya dalam fail ini:

gunakan IlluminateSupportServiceProvider;
gunakan IlluminateSupportFacadesSchema;
kelas AppServiceProvider memanjangkan ServiceProvider
{rr

Dalam kod di atas, kami telah menetapkan pengekodan pangkalan data kepada utf8mb4, menetapkan pengekodan dalam fail supaya sama dengan fail Excel akan menyelesaikan masalah.

    Semak pengekodan fail Excel
Jika kaedah pengekodan dalam fail Excel anda tidak konsisten dengan kaedah pengekodan sebenar, maka masalah aksara Cina bercelaru akan berlaku apabila mengimport . Oleh itu, sebelum mengimport fail Excel, kita perlu memastikan bahawa fail Excel dikodkan dengan betul. Cara mudah ialah:

Sebelum membuka fail Excel, simpan sebagai fail TXT dan kemudian import fail TXT, ini akan memastikan pengekodan adalah betul.

Contohnya:

$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();

di Dalam contoh ini, kami menukar fail Excel kepada fail CSV dan kemudian menukarnya kepada pengekodan UTF-8. Sila ambil perhatian bahawa pendekatan ini bukanlah pendekatan terbaik dan anda mungkin perlu membuat lebih banyak pelarasan untuk memastikan ketepatan data anda.

Kesimpulan

Menangani masalah aksara Cina bukanlah satu tugas yang mudah. Walau bagaimanapun, selepas perbincangan dalam artikel ini, kami telah memahami penyelesaian asas. Jika anda masih menghadapi masalah dengan ralat import aksara Cina, sila terus semak pengekodan pangkalan data dan pengekodan fail Excel anda dan buat pelarasan yang diperlukan.

Atas ialah kandungan terperinci laravel import excel Chinese tidak dipaparkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn