【问题标题】:ANSI encoded file converting to UTF-8 encoded file with php script?使用 php 脚本将 ANSI 编码文件转换为 UTF-8 编码文件?
【发布时间】:2014-02-17 17:19:29
【问题描述】:

linux下如何用php,或任何脚本,或任何命令行将ANSI编码文件转换为UTF-8编码文件?

【问题讨论】:

  • ANSI 不是一种字符编码...

标签: php linux utf-8 character-encoding converter


【解决方案1】:

首先,ANSI 不是一种字符编码。使用 ANSI,您需要找出您尝试读取的特定文件的编码选项。首先,您应该首先确定文件是否已经 UTF-8 编码,如果没有,则简单地对其进行编码。下面,我们检查编码,如果成功,我们返回文件。

$output = false;
if( !mb_check_encoding( $myFile, 'UTF-8', true ) ):
   $output = mb_convert_encoding( $myFile, 'UTF-8' ); 
endif;

然后只需检查编码是否有效。

return $output ? $output : 'Failed encoding file!';

【讨论】:

  • 感谢您的快速回复!当我手动下载该 .csv 文件并在 Windows 下使用书写板打开它时,我看到它是由 ansi 编码的。我也保存在同一个文件中,只是将文件编码转换为 utf-8。所以我想用php做同样的事情,或者用命令行......
  • @MarcellNemeth 如果您可以使用命令行,那么我可能会为此使用iconviconv -f iso-8859-1 -t utf-8 <infile >outfile 当然也相应地调整变量。
  • 是的,我也在想那个 iconv 命令行......所以看起来像这样:
  • iconv -f iso-8859-1 -t utf-8 /folder2/file_ansi.csv >/folder1/folder2/file_utf8.csv ?
  • 嘿!我修复它! :) 我将所有命令放入 .sh 文件中,现在也可以与 crontab 完美配合!
【解决方案2】:

不是我的回答,而是强调 Ohgodwhy 的回答中的一个 cmets:

如果您可以使用命令行,那么我可能会为此使用 iconv。

iconv -f iso-8859-1 -t utf-8 <infile >outfile

当然也要相应地调整变量。 – 天哪

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 2011-11-07
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 2020-07-28
    相关资源
    最近更新 更多