Php str_getcsv已损坏,剪辑变音符号?

Php str_getcsv已损坏,剪辑变音符号?,php,csv,diacritics,Php,Csv,Diacritics,我在一个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"; ?>

我在一个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文件采用什么编码?可能重复:设置正确的区域设置,如
setlocale(LC_ALL,'de_de.UTF-8')
为我修复了它(奇怪的是,它不适合您),这是一个已确认且未修复的错误:是的,这很奇怪。这就是我重新发布的原因,因为错误描述似乎不够准确。可能服务器上禁止设置区域设置?已确认:setlocale(LC_ALL,'de_de.UTF-8')或任何适当的语言都可以解决发音符号问题。