1

我工作区中的所有 PHP 文件都以Unicode (UTF-8, no BOM)编码。我经常复制现有的源文件以用作新脚本的基础。总是(使用路径查找器或原始查找器),OS X 会将重复文件的编码转换为Western (Mac OS Roman)

复制文本文件时,有什么方法可以使 OS X 正常运行而不转换文本编码?或者让它对所有扩展名为 .php 的文件默认使用特定的文本编码(西方除外!)?

4

3 回答 3

3

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

如果您没有任何高于 0x7f 的字符,UTF-8 和 Mac OS Roman 实际上是相同的,因此没有 BOM 的有效 UTF-8 文件很可能被解释为 Mac OS Roman 文件。无论如何,我会研究向您展示编码以找到解决方案的任何程序,而不是 OS X 本身的文件复制过程。

于 2008-10-24T18:17:09.933 回答
2

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

于 2008-10-25T21:37:38.473 回答
1

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

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

-W

于 2008-10-25T21:21:28.820 回答