Maison> cadre php> Laravel> le corps du texte

laravel import excel chinois ne s'affiche pas

WBOY
Libérer: 2023-05-20 22:22:36
original
591 Les gens l'ont consulté

Dans Laravel, utiliser Maatwebsite/Laravel-Excel est un moyen très pratique de traiter des fichiers Excel. Cependant, parfois lorsque le fichier Excel importé contient du chinois, Laravel ne parvient pas à afficher correctement les caractères chinois dans la base de données. Cet article explorera ce problème et proposera quelques solutions.

Description du problème

Lors de l'utilisation de Maatwebsite/Laravel-Excel pour importer un tableau dans l'application Laravel, il arrive parfois que les caractères chinois soient tronqués ou affichés de manière incorrecte. Ce problème se produit généralement dans les situations suivantes :

  1. Incompatibilité d'encodage de la base de données : si la méthode d'encodage de la base de données est incohérente avec la méthode d'encodage du fichier Excel, les caractères chinois seront endommagés.
  2. Erreur d'encodage du fichier Excel : si la méthode d'encodage dans le fichier Excel est incohérente avec la méthode d'encodage réelle, les caractères chinois seront également endommagés.

Solution

  1. Vérifiez l'encodage de la base de données

Dans Laravel, l'encodage de la base de données est lié au fichier AppServiceProvider.php. Vous pouvez définir l'encodage de la base de données dans ce fichier. Si vous utilisez une base de données MySQL, vous pouvez la définir dans ce fichier :

utilisez IlluminateSupportServiceProvider;
utilisez IlluminateSupportFacadesSchema;
class AppServiceProvider extends ServiceProvider
{

public function boot() { Schema::defaultStringLength(191); DB::statement('SET NAMES utf8mb4'); DB::statement('SET CHARACTER SET utf8mb4'); }
Copier après la connexion

}

Dans le code ci-dessus, nous avons défini l'encodage de la base de données sur utf8mb4 , définir le codage dans le fichier pour qu'il soit identique à celui du fichier Excel résoudra le problème.

  1. Vérifiez l'encodage du fichier Excel

Si la méthode d'encodage de votre fichier Excel est incohérente avec la méthode d'encodage réelle, le problème des caractères chinois tronqués se produira lors de l'importation. Par conséquent, avant d’importer le fichier Excel, nous devons nous assurer que le fichier Excel est correctement encodé. Un moyen simple est :

Avant d'ouvrir le fichier Excel, enregistrez-le en tant que fichier TXT puis importez le fichier TXT, cela garantira que l'encodage est correct.

Par exemple :

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

Dans cet exemple, nous convertissons le fichier Excel en fichier CSV, puis le convertissons en encodage UTF-8. Veuillez noter que cette approche n'est pas la meilleure et que vous devrez peut-être procéder à des ajustements supplémentaires pour garantir l'exactitude de vos données.

Conclusion

Résoudre le problème des caractères chinois n'est pas une tâche facile. Cependant, après la discussion dans cet article, nous avons compris les solutions de base. Si vous rencontrez toujours des problèmes avec les erreurs d'importation de caractères chinois, veuillez continuer à vérifier l'encodage de votre base de données et l'encodage de votre fichier Excel et apporter les ajustements nécessaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!