Php CSV导入中的奇怪字符

Php CSV导入中的奇怪字符,php,Php,我正在从.csv文件导入文本。导入文件时,文件中有一些奇怪的字符,如“Õ”。这个角色应该用撇号。例如“它是”。你知道我怎么把它转换成标准撇号吗 我很确定它们的问题来自source.csv,但我需要能够转换这些字符 试试下面的代码 <?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

我正在从.csv文件导入文本。导入文件时,文件中有一些奇怪的字符,如“Õ”。这个角色应该用撇号。例如“它是”。你知道我怎么把它转换成标准撇号吗

我很确定它们的问题来自source.csv,但我需要能够转换这些字符

试试下面的代码

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?>

听起来您好像遇到了“”问题。我相信:


看起来像是代码页问题。显示了CP1252和MacRoman的示例。尝试使用iconv?

似乎没有任何效果。撇号现在是一个�.如果有帮助的话,我注意到一些空格也会出现这种情况。也许输入字符串采用某种Unicode编码?(UTF-8?)
<?php
function convert_smart_quotes($string)
{
    $search = array(chr(145), chr(146), chr(147), chr(148), chr(151));
    $replace = array("'", "'", '"', '"', '-');
    return str_replace($search, $replace, $string);
}
?>