2012-05-16 58 views
0

我想一个PHP文件(client.php)从UTF-8转换为ISO-8859-1和下面的命令不上的文件没有:的iconv在Mac OS X 10.7.3无助

的iconv -f UTF-8 -t ISO-8859-1 client.php

在执行时被显示的原始文件的内容。

事实上,当我检查该文件的编码执行的iconv与后:

文件-I client.php

古同UTF-8所示:

client.php:text/x-php; charset = utf-8

+0

是否有文件,其中编码实际上有所作为任何非ASCII字符? – deceze

回答

3

iconv应用程序应将文件中字符的编码从一个代码集转换为另一个代码集,并将结果写入标准输出

这里有一个解决方案: 写入标准输出到一个临时文件并重新命名临时文件

iconv -f UTF-8 -t ISO_8859-1 client.php > client_temp.php && mv -f client_temp.php client.php 
+0

嘿@ jackjr300 !!有效!!恕我直言,在iconv中应该有一个标志允许覆盖输入文件。只是一个意见。我会在下次读取结果写入标准输出时意识到这一点。 – CarlesAndres

+0

iconv中没有标志 – jackjr300

1

对于最低的128个字符,ASCII,UTF-8和ISO-8859是100%相同的编码。如果您的文件只包含该范围内的字符(这基本上是您在美国英语键盘上找到的一组字符),则这些编码之间没有区别。

我猜猜怎么了:纯文本文件没有关联的编码元数据。仅仅通过查看它就无法知道纯文本文件的编码。 file实用程序正在做的只是给出最好的猜测,因为没有什么区别,它倾向于告诉你该文件是UTF-8编码的,从技术上讲很可能是这样。

+0

我的文件包含一些西班牙文字符,它们不在ASCII集合中。实际上,我注意到当我使用下面的代码来编码文件时出现了错误:''。不管怎么说,还是要谢谢你。 – CarlesAndres