我工作区中的所有PHP文件都以 Unicode(UTF-8,无BOM)进行编码。我经常复制现有的源文件以用作新脚本的基础。 OS X(将使用Path Finder或原始Finder)将重复文件的编码转换为 Western(Mac OS Roman)。
有没有办法让OS X在复制文本文件时表现并且不转换文本编码?或者,对于扩展名为.php的所有文件,默认情况下使用特定的文本编码(Western!除外)?
答案 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