Bagaimana untuk menyelesaikan masalah aksara yang kacau apabila mengimport csv ke dalam php

PHPz
Lepaskan: 2023-03-29 10:32:40
asal
1082 orang telah melayarinya

Semasa proses mengimport CSV dalam php, kadangkala anda akan menghadapi masalah aksara bercelaru dalam fail CSV yang diimport, mengakibatkan ralat dalam data yang diimport Jadi bagaimana untuk menyelesaikan masalah aksara bercelaru dalam import CSV? Berikut adalah beberapa penyelesaian.

1. Tetapkan format pengekodan fail CSV

Pertama sekali, format pengekodan fail CSV yang diimport hendaklah konsisten dengan format pengekodan fail PHP apabila memilih "Simpan Sebagai" dalam format Excel untuk disimpan. Atau anda boleh menggunakan editor teks seperti Notepad++ untuk membuka fail CSV, menukar format pengekodan kepada UTF-8 atau GBK dan menyimpan fail tersebut.

Sebagai contoh, untuk mengimport fail CSV yang dikodkan GBK dalam fail PHP yang dikodkan UTF-8, anda boleh menambah kandungan berikut dalam kod PHP:

if ($_FILES['file']['name']) {
    $filename = $_FILES['file']['name']; //获取文件名
    if ($filename) {
        $type = $_FILES['file']['type'];
        $tmp_name = $_FILES['file']['tmp_name'];
        $size = $_FILES['file']['size'];
        $fp = fopen($tmp_name, "r"); //将文件读取成字符串
        $content = fread($fp, $size);
        $content = iconv("GBK", "UTF-8", $content); //将GBK编码转换为UTF-8编码
        fclose($fp);
    }
}
Salin selepas log masuk

2 fungsi fgetcsv

Gunakan fungsi fgetcsv untuk membaca kandungan fail CSV yang diimport dan kemudian memprosesnya dengan sewajarnya. Fungsi fgetcsv akan membaca kandungan baris fail CSV dan menyimpannya dalam tatasusunan.

Contohnya:

if ($_FILES['file']['name']) {
    $filename = $_FILES['file']['name']; //获取文件名
    if ($filename) {
        $type = $_FILES['file']['type'];
        $tmp_name = $_FILES['file']['tmp_name'];
        $size = $_FILES['file']['size'];

        $fp = fopen($tmp_name, "r"); //将文件读取成字符串

        //使用fgetcsv读取csv文件
        while($line = fgetcsv($fp)) {
            if($line!=null){//如果读到的行不为空,进行以下操作
                $user[$j][0] = iconv("GBK", "UTF-8",$line[0]);//将从csv文件中读道的转换成utf-8
                $user[$j][1] = iconv("GBK", "UTF-8",$line[1]);
                $j++;
            }
        }

        fclose($fp);
    }
}
Salin selepas log masuk

3 Gunakan fungsi mb_convert_encoding

Gunakan fungsi mb_convert_encoding untuk menukar format pengekodan fail CSV kepada UTF-8.

Contohnya:

if ($_FILES['file']['name']) {
    $filename = $_FILES['file']['name']; //获取文件名
    if ($filename) {
        $type = $_FILES['file']['type'];
        $tmp_name = $_FILES['file']['tmp_name'];
        $size = $_FILES['file']['size'];
        $fp = fopen($tmp_name, "r"); //将文件读取成字符串

        while($line = fgets($fp)){
            $buffer[] = mb_convert_encoding($line, 'UTF-8', 'GBK');//将csv文件内容的编码格式转化为UTF-8
        }

        fclose($fp);
    }
}
Salin selepas log masuk

Ringkasan:

Di atas adalah beberapa kaedah untuk menyelesaikan masalah bercelaru import PHP CSV Kaedah yang berbeza mempunyai kesan tertentu pada masalah bercelaru yang berbeza . Kebolehgunaan, anda boleh memilih kaedah yang sesuai dengan anda. Sudah tentu, anda juga perlu memberi perhatian kepada isu lain semasa proses import fail CSV, seperti pemisah baris, pemisah lajur, dll., untuk memastikan data yang diimport adalah lengkap dan betul.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah aksara yang kacau apabila mengimport csv ke dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!