我收到的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");
取值
答案 0 :(得分:0)
首先检查php使用的内部编码
echo mb_internal_encoding();
然后将其设置为必需的
mb_internal_encoding( “UTF-8”);