【问题标题】:Character encoding problems with reading a csv file读取 csv 文件的字符编码问题
【发布时间】:2013-04-26 08:09:28
【问题描述】:

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

smb 可以建议一个解决方案吗?

【问题讨论】:

  • 当我不知道原始文件代码页时,我会在浏览器中打开它并使用 Menu->Encoding->...
  • 它不是 UTF-8 编码,看起来好像不是 ISO-8859-1。 '�' 表示它一直无法在编码表中找到该值。您必须找出 csv 文件中使用的编码类型,例如。按照安德烈·沃尔克的提议去做。

标签: php csv utf-8 character-encoding


【解决方案1】:

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

  <?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 );
        }
 ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2015-07-27
    • 2018-07-16
    • 1970-01-01
    相关资源
    最近更新 更多