Php 读取csv文件时的字符编码问题

Php 读取csv文件时的字符编码问题,php,csv,utf-8,character-encoding,Php,Csv,Utf 8,Character Encoding,我的csv文件包含特殊字符,如“æ”、“å”等。当我读取和打印文件时,文件中的特殊字符会转换为�'. 我尝试将页面编码设置为UTF-8和ISO 8859-1。但这些都没有帮助 smb能提供解决方案吗?我认为您必须检测并更改原始编码如下(如果您使用的是php): 我认为您必须检测并更改原始编码如下(如果您使用的是php): 当我不知道原始文件代码页时,我会在浏览器中打开它,然后使用菜单->编码->…它不是UTF-8编码,看起来好像不是ISO-8859-1。”�' 表示无法在编码表中找到值。您必须

我的csv文件包含特殊字符,如“æ”、“å”等。当我读取和打印文件时,文件中的特殊字符会转换为�'. 我尝试将页面编码设置为UTF-8和ISO 8859-1。但这些都没有帮助


smb能提供解决方案吗?

我认为您必须检测并更改原始编码如下(如果您使用的是php):


我认为您必须检测并更改原始编码如下(如果您使用的是php):



当我不知道原始文件代码页时,我会在浏览器中打开它,然后使用菜单->编码->…它不是UTF-8编码,看起来好像不是ISO-8859-1。”�' 表示无法在编码表中找到值。您必须找出csv文件中使用的编码类型,例如,按照Andrey Volk的建议进行操作。当我不知道原始文件代码页时,我会在浏览器中打开它,然后使用菜单->编码->…它不是UTF-8编码,看起来好像不是ISO-8859-1。”�' 表示无法在编码表中找到值。您必须找出csv文件中使用的编码类型,例如,按照Andrey Volk的建议执行。
  <?php
        header( "Content-Type: text/html; charset=utf-8");
        $csvContent = file_get_contents( $fileName );
        $encoding = mb_detect_encoding( $csvContent, 
                                        array("UTF-8","UTF-32","UTF-32BE","UTF-32LE","UTF-16","UTF-16BE","UTF-16LE"), 
                                        TRUE );

        if( $fileEncoding !== "UTF-8" ) {
             $csvContent = mb_convert_encoding($csvContent, "UTF-8", $fileEncoding );
        }

        foreach( explode( PHP_EOL, $csvContent ) as $item ) {
           var_dump($item );
        }
 ?>