2
如何支持非標準的字符。我有一個簡短的腳本讀取一個CSV文件,該文件如下所示:在PHP SplFileObject閱讀CSV
$csv = new SplFileObject($pathToFile, 'r');
while (!$csv->eof() && ($row = $csv->fgetcsv()) && $row[0] !== null) {
var_dump($row);
}
該工程確定,但它有一些問題非標準字符。 CSV中有一些德語單詞,我的具體問題是它有變音困難。行它輸出的類型的一個例子是:
array(5) {
[0]=>
string(6) "J¦rgen"
[1]=>
string(8) "Lastname"
[2]=>
string(14) "[email protected]"
[3]=>
string(7) "Example"
[4]=>
string(7) "Example"
}
在的Jürgen的ü得到與替換|字符。
我試圖把下面的代碼之前:
mb_internal_encoding('UTF-8');
但它沒有任何效果。
在Vi中打開csv文件顯示成功,所以文件在服務器上是正確的。
任何人都可以建議如何在解析CSV時成功處理德語字符?
適用於我。假設你在終端執行它,你使用的是哪種終端編碼?通過瀏覽器試用。 – hek2mgl
我從命令行運行它,但我做了一些調整,從瀏覽器運行併發生相同的事情。 來自CSV的值會被放入MySQL數據庫表中,該表也不會獲取虛擬字符。 (同一系統中的其他PHP腳本,其中數據來自HTTP POST而不是CSV文件,可成功處理變音符號並將它們插入到MySQL中而不會出現問題)。 – Jack
嘗試使用'iconv'(在命令行上)將文件轉換爲'utf-8'。你需要知道什麼是csv文件的輸入編碼。爲此,您需要查看生成csv的程序。如果這是不可能的,我最好的猜測是windows-CP-1252 – hek2mgl