我在 UTF-8 编码的文件中有这样的代码:
<?php
setlocale(LC_ALL, 'cs_CZ.utf8'); //Can be commented out without effect.
$input = "Štěpán,Šafránek";
$result = str_getcsv($input);
echo $result[0]; //output = "těpán";
echo $result[1]; //output = "afránek";
?>
请注意这些回声产生的剪辑字符串。
这也有效:
<?php
setlocale(LC_ALL, 'cs_CZ.utf8'); //Can be commented out without effect.
$input = "aaaŠtěpán,aaaŠafránek";
$result = str_getcsv($input);
echo $result[0]; //output = "aaaŠtěpán";
echo $result[1]; //output = "aaaŠafránek";
?>
由于输入字符串是脚本的一部分,因此编码应该没有问题,对吧?语言环境设置正确,对吧?
那么有什么问题呢?我的决议是 str_getcsv() 完全被破坏了。解析CSV的任何替代方法?
有趣的是,它在 Windows 上运行良好,但在 Linux 上我看到了这种行为。
相关问题在这里,但那里提到的决议没有帮助: PHP str_getcsv removes umlauts