【发布时间】:2018-04-01 05:48:18
【问题描述】:
我可以将文件转换为 UTF-8 吗?
如果我在提交后可以访问文件
$_FILES['file']['tmp_name']
注意:用户可以上传任何字符集的 CSV 文件,我通常会遇到 unknown 8-bit 字符集。
我试试
$row = array();
$datas = file($_FILES['file']['tmp_name']);
foreach($datas as $data) {
$data = mb_convert_encoding($data, 'UTF-8');
$row[] = explode(',', $data);
}
但问题是,这段代码删除了像单引号这样的特殊字符。
我的第一个问题是htmlspecialchars remove the value inside the array?
我放它是为了获得更多信息。感谢那些可以提供帮助的人!
【问题讨论】:
-
任何示例文件可以尝试吗?
-
您可能会在这里找到答案:stackoverflow.com/a/7980354/1348344
-
所以最好的解决方案就是检测它是否包含 utf-8?
-
我认为这是 TomášVotruba (stackoverflow.com/questions/7979567/…) 链接的问题的副本。您的字符串来自文件这一事实没有任何区别,因为实际上这里的所有代码都是填充
$data,就像在另一个问题中一样,它是一个未知编码的字符串。不过,在赏金开放期间,我似乎无法关闭为重复项。 -
查看 PHP 的 iconv 扩展,它有一些非常好的字符编码转换机制,比 mb_family 函数好多了...