OS X文件复制默认情况下转换文本编码

时间:2008-10-24 13:54:33

标签: macos text encoding utf-8

我工作区中的所有PHP文件都以 Unicode(UTF-8,无BOM)进行编码。我经常复制现有的源文件以用作新脚本的基础。 OS X(将使用Path Finder或原始Finder)将重复文件的编码转换为 Western(Mac OS Roman)

有没有办法让OS X在复制文本文件时表现并且不转换文本编码?或者,对于扩展名为.php的所有文件,默认情况下使用特定的文本编码(Western!除外)?

3 个答案:

答案 0 :(得分:3)

我非常怀疑你所看到的“转换”是文件的两个副本的实际差异。 OS X不会为文件的内容存储任何类型的编码值,因此更有可能的是,您使用的任何工具来查看/编辑以不同方式解释内容的文件,无论是Xcode,TextWrangler还是其他你正在使用的其他编辑。直接复制文件,无论是来自Finder,Path Finder还是命令行,都不会在复制过程中更改文件中的实际数据。

如果你没有任何高于0x7f的字符,那么UTF-8和Mac OS Roman实际上是相同的,所以很有可能没有BOM的有效UTF-8文件可以被解释为Mac OS Roman文件。在任何情况下,我都会调查那些显示编码的程序,以找到解决方案,而不是OS X本身的文件复制过程。

答案 1 :(得分:2)

请注意,OS X中确实存在一个扩展属性,用于存储通过-[NSString writeToFile:...]或类似工具生成的文本文件的文件编码,这些文件可能无法与文件一起复制。

答案 2 :(得分:1)

您是使用Finder复制文件还是其他工具(IDE)?

如果您不使用Finder进行复制,原始文件可能会在其资源中出现一些扩展的Finder元数据,这些元数据在复制过程中会丢失。

-W