I`ve有data.csv文件時,必須上傳到服務器,解析....如何檢測上傳CSV文件的編碼
此文件可以有不同的編碼。我必須檢測它並轉換爲utf8。
此時PHP功能mb_detect_encoding總是返回UTF-8。 我tryed:
<?php
mb_detect_encoding(file_get_contents($_FILES["csv_uploadfile"]["tmp_name"]));
或
<?php
mb_detect_encoding(file_get_contents($saved_file_path));
mb_detect_encoding返回UTF8。如果我使用bash命令
$ file -bi csv_import_1378376486.csv |awk -F "=" '{print $2}'
它rerurns ISO-8859-1
所以當我嘗試
iconv --from-code=iso-8859-1 --to-code=utf-8 csv_import_1378382527.csv
它是不可讀的。
真正的編碼是cp1251,我無法檢測到它。 任何人都可以幫助我解決這個問題嗎?
這是文本編碼的固有問題。你不能總是正確地檢測它們,你大多數時候只能猜測它們。除非有一些元信息可用。 – scai