当前位置:首页 > 后端 > php > php 导入csv ascii编码中文无法读取 utf-8

php 导入csv ascii编码中文无法读取 utf-8

DChen3年前 (2021-07-29)php2 K0

php项目导入csv文件后,PHP无法读取到ascii编码的数据。强制使用iconv()和mb_convert_encoding()将ascii转化为utf-8无效。

搜索原因:ascii是utf-8的子集。


一、linux平台

在读取csv文件前先使用setlocale函数来设置地区信息。


string setlocale(string category, string locale);


参数 category 有下列的选择:

LC_ALL 包括下面的全项选项都要。
LC_COLLATE 配置字符串比较,Php 目前尚未实作出来本项。
LC_CTYPE 配置字符类别及转换。例如全变大写 strtoupper()。
LC_MONETARY 配置金融货币,PHP 目前尚未实作。
LC_NUMERIC 配置小数点后的位数。
LC_TIME 配置时间日期格式,与 strftime() 合用。


参数 locale 有下列的选择:


zh_CN GB2312
en_US.UTF-8 UTF-8
zh_TW BIG5
zh_HK BIG5-HKSCS
zh_TW.EUC-TW EUC-TW
zh_TW.UTF-8 UTF-8
zh_HK.UTF-8 UTF-8
zh_CN.GBK GBK
setlocale(LC_ALL, 'en_US.UTF-8');
if ($data = fgetcsv($handle, 10000)) {}


二、window平台

听别人说window平台使用iconv()和mb_convert_encoding()是可以的。

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

版权声明:本文由“憨小猪”发布,如需转载请注明出处。

本文链接:https://www.phper.red/post/136.html

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。