PHP上传时的CSV编码问题

时间:2015-07-14 15:00:25

标签: php csv

我收到的csv文件看起来相当简单。

我在上面运行它并告诉我它的ASCII。

echo mb_detect_encoding($fhandle , "auto");     

但是,当我运行我的导入代码时:它无法正常工作。

$sql= "LOAD DATA LOCAL INFILE '". $fhandle ."' INTO TABLE sys6_impBet FIELDS     TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'  IGNORE 1 LINES

(       AccNo_1,

    MtgDate,

    Code,

    Venue,

    Location,

    Pool,

    EventNo,

    Gross_Sales,

    Refunds,

    Turnover,

    Dividends,

    Profit_Loss);" ;

它会引入正确数量的记录,但在每个字段/记录中都会显示NULL或0。 所以它在查看记录时读取文件但不会获取值。

下面是一个小样本:

AccNo_1,MtgDate,编码,地点,位置,游泳池,EventNo,Gross_Sales,退款,周转,股利,Profit_Loss 66096159,12 / 07/2015,急驰,佩诺拉,SA,高音,0,279.00,0.00,279.00, “1,955.70”, “1,676.70” 66096159,12 / 07/2015,急驰,瓦南布尔,VIC,高音,0, “1,048.00”,0.00 “1,048.00”, “2,672.80”, “1,624.80” 66096718,12 / 07/2015,急驰,卡尔古利,WA,运,2,783.00,0.00,783.00, “1,174.50”,391.50 66096718,12 / 07/2015,急驰,佩诺拉,SA,运,6,204.00,0.00,204.00, “1,143.00”,939.00 66096718,12 / 07/2015,Gallops,Sha Tin,HK,Win,4,197.00,0.00,197.00,“2,064.00”,“1,867.00”

是编码问题。

如果我在记事本中打开文件并保存为UTF-8编码并将其保存回来。然后上面的代码工作,所有代码都被导入。

但我每天都不能为每个文件做到这一点?

我可以尝试任何想法吗?

我试过这个但没有不同:

$fhandle = mb_convert_encoding($fhandle, "UTF-8", "ASCII"); 

取值

1 个答案:

答案 0 :(得分:0)

首先检查php使用的内部编码

echo mb_internal_encoding();

然后将其设置为必需的

mb_internal_encoding( “UTF-8”);