簡體   English   中英

PHP讀取UTF-8 CSV

[英]PHP read UTF-8 CSV

我有一個從CSV文件讀取的PHP腳本,該文件是UTF-8格式,下面的代碼將其視為ASCII。 如何更改代碼以將文件讀取為UTF-8?

if (($handle = fopen("books.csv", "r")) === FALSE)
  throw new Exception("Couldn't open books.csv");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

[編輯]我當前代碼的一個問題是第一行的第一個值總是有三個字節,用於標識開頭附加的UTF-8文件。 所以我想一個按值或按行運行的解決方案可能不夠好?

使用fgets()獲取文件變量$ date中的所有字符串,然后mb_convert_encoding()轉換編碼,然后str_getcsv()將字符串轉換為數組。

if (($handle = fopen("books.csv", "r")) === FALSE)
    throw new Exception("Couldn't open books.csv");

$data = "";

// get file all strin in data
while (!feof($handle)) {
    $data .= fgets($handle, 5000);
}

// convert encoding
$data = mb_convert_encoding($data, "UTF-8", "auto");

// str_getcsv
$array = str_getcsv($data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM