ホームページ PHPフレームワーク Laravel laravel import Excel中国語が表示されない

laravel import Excel中国語が表示されない

May 20, 2023 pm 10:22 PM

Laravel では、Maatwebsite/Laravel-Excel を使用すると Excel ファイルを処理するのに非常に便利です。ただし、インポートされた Excel ファイルに中国語が含まれている場合、Laravel はデータベース内の中国語の文字を正しく表示できないことがあります。この記事では、この問題を調査し、いくつかの解決策を提供します。

問題の説明

Maatwebsite/Laravel-Excel を使用してテーブルを Laravel アプリケーションにインポートすると、中国語の文字が文字化けしたり、正しく表示されない場合があります。この問題は通常、次の状況で発生します。

  1. データベース エンコードの不一致: データベースのエンコード方法が Excel ファイルのエンコード方法と一致しない場合、中国語の文字が破損します。
  2. Excel ファイルのエンコード エラー: Excel ファイルのエンコード方法が実際のエンコード方法と一致しない場合、中国語の文字も破損します。

解決策

  1. データベース エンコーディングを確認する

Laravel では、データベース エンコーディングは AppServiceProvider.php ファイルに関連しています。このファイルでデータベースのエンコードを設定できます。 MySQL データベースを使用している場合は、次のファイルで設定できます:

use IlluminateSupportServiceProvider;
use IlluminateSupportFacadesSchema;
class AppServiceProvider extends ServiceProvider
{

1

2

3

4

5

6

public function boot()

{

    Schema::defaultStringLength(191);

    DB::statement('SET NAMES utf8mb4');

    DB::statement('SET CHARACTER SET utf8mb4');

}

ログイン後にコピー

}

上記のコードでは、データベースのエンコードを utf8mb4 に設定していますが、ファイル内のエンコードを Excel ファイルと同じに設定すると、問題を解決できます。

  1. Excelファイルのエンコードを確認する

Excelファイルのエンコード方法と実際のエンコード方法が一致していない場合、インポート時に中国語文字化けが発生する問題が発生します。 。したがって、Excel ファイルをインポートする前に、Excel ファイルが正しくエンコードされていることを確認する必要があります。簡単な方法は次のとおりです:

Excel ファイルを開く前に、それを TXT ファイルとして保存し、TXT ファイルをインポートします。これにより、エンコードが正しいことが確認されます。

例:

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

この例では、Excel ファイルを CSV ファイルに変換し、それを UTF-8 エンコーディングに変換します。このアプローチは最善のアプローチではなく、データの正確性を確保するためにさらに調整が必要になる場合があることに注意してください。

結論

漢字の問題に対処するのは簡単な作業ではありません。しかし、この記事での議論を経て、基本的な解決策は理解できました。それでも中国語のインポート エラーの問題が発生する場合は、データベースのエンコードと Excel ファイルのエンコードを継続的に確認し、必要な調整を行ってください。

以上がlaravel import Excel中国語が表示されないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravel Frameworkのインストール最新方法 Laravel Frameworkのインストール最新方法 Mar 06, 2025 pm 01:59 PM

Laravel Frameworkのインストール最新方法

Laravelで高度な機能を備えたRESTFUL APIを構築する方法は? Laravelで高度な機能を備えたRESTFUL APIを構築する方法は? Mar 11, 2025 pm 04:13 PM

Laravelで高度な機能を備えたRESTFUL APIを構築する方法は?

Laravel-Adminメニュー管理 Laravel-Adminメニュー管理 Mar 06, 2025 pm 02:02 PM

Laravel-Adminメニュー管理

LaravelでOAUTH2認証と承認を実装する方法は? LaravelでOAUTH2認証と承認を実装する方法は? Mar 12, 2025 pm 05:56 PM

LaravelでOAUTH2認証と承認を実装する方法は?

Laravelのバージョンは最高です Laravelのバージョンは最高です Mar 06, 2025 pm 01:58 PM

Laravelのバージョンは最高です

クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか? クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか? Mar 14, 2025 pm 01:44 PM

クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか?

Laravelでファイルアップロードとクラウドストレージを処理する最良の方法は何ですか? Laravelでファイルアップロードとクラウドストレージを処理する最良の方法は何ですか? Mar 12, 2025 pm 05:54 PM

Laravelでファイルアップロードとクラウドストレージを処理する最良の方法は何ですか?

Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか? Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか? Mar 17, 2025 pm 02:38 PM

Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか?

See all articles