2017-08-23 27 views
-1

我正在讀取CSV文件到PHP。文件正在正確讀取,除了一件事。問題在於閱讀非英語語言的文字。CSV到PHP文件 - 使用多種語言文字的問題

數組正在返回一些符號而不是其他語言的精確單詞。

對於如:LBL_Hello你好你好

以上內容中有CSV文件。我使用下面的代碼讀取的話到PHP中數組的形式:

<?php 
$file = file_get_contents("test.csv"); 
    $data = (array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $file))); 
    echo "<pre>"; 
    print_r(($data)); 
    exit; 

?> 

輸出:

Array 
(
    [0] => Array 
     (
      [0] => LBL_Hello 
      [1] => Hello 
      [2] => ��� 
     ) 

    [1] => Array 
     (
      [0] => 
     ) 

) 

在這裏,中國話「你好」被顯示爲「」。這也發生在所有其他語言詞彙上。

請幫助我瞭解什麼是缺失的,以便我可以在將CSV讀入PHP時獲取確切的其他語言單詞。

在此先感謝。

+0

有你試過mb_split而不是preg_split嗎?(http://php.net/manual/en/function.mb-split.php) –

+0

這個不行 - Nigel Ren –

+0

file_get_contents有一些問題,看看事情像... https://stackoverflow.com/que stions/2236668/file-get-contents-breaks-up-utf-8-characters –

回答

0

嘗試在文件頂部發送字符集

header('Content-Type: text/html; charset=UTF-8') 

示例代碼(之前任何其他輸出)來獲取數據(包含非英文字符)的CSV:

<?php 
header('Content-Type: text/html; charset=UTF-8'); 
$handle = fopen ("test.csv", "r"); 
$dataArr = []; 
echo "<pre>"; 
while ($data = fgetcsv ($handle, 1000, ",")) { 
    array_push($dataArr, $data); 
} 
print_r($dataArr); 
echo "</pre>"; 
exit; 
?> 
+0

感謝您回覆我的問題。但這是行不通的 - sampth kumar –

+0

我也使用標題集 –