我已将带有 .NET 和 SQL 源的整个分支转换为带有 BOM 的 UTF-8,在同一操作中将它们的 Perforce 文件类型更改为 Unicode。 (编码差异可能听起来令人困惑,但在 Perforce 中,Unicode 文件类型表示 UTF-8 文件内容。)但后来我发现 Perforce 默默地从 UTF-8 文件中消除了 BOM 标记。是否可以设置 Perforce 以在 Unicode 文件类型的文件中保留 UTF-8 BOM 标记?我找不到它的文档。
Perforce 服务器切换到 Unicode 模式,连接编码为 UTF-8 无 BOM(但将其更改为带 BOM 的 UTF-8 没有任何区别)。
例子:
最佳答案
好的,Hans Passant 的评论鼓励我重新审视 P4CHARSET,最后,答案有两个部分:
对于 Perforce 命令行访问 ,P4CHARSET
变量的设置控制行为。要启用向 Unicode 类型的文件添加 BOM,请使用命令
p4 set P4CHARSET=utf8-bom
为了让这些文件没有 BOM,请使用
p4 set P4CHARSET=utf8
对于 P4V Perforce Visual Client ,可以通过菜单
Connection
> Choose Character Encoding...
更改设置。使用值 Unicode (UTF-8)
启用添加 BOM 和 Unicode (UTF-8, no BOM)
来抑制它。Choose Character Encoding...
被禁用,请确保以下(然后再次检查)注释:
关于unicode - 如何防止从 Perforce unicode 文件中删除 BOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21204743/