【发布时间】:2014-02-07 21:29:57
【问题描述】:
我已将带有 .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(但将其更改为 UTF-8 with BOM没有任何区别)。
例子:
- 从 Perforce 签出源文件
- 将文件类型更改为 Unicode
- 将文件内容转换为“UTF-8 with BOM”格式
- 提交文件(现在文件仍然保留前 3 个字节的 BOM)
- 从工作区中删除文件
- 获取文件的最新版本(现在文件开头不包含 BOM)
【问题讨论】:
-
注意 P4CHARSET 值。如果它是“utf8”,那么它将剥离 BOM,请改用“utf8-bom”。 More here.
-
@HansPassant - 谢谢汉斯,它有帮助。请将此添加为答案,我会接受。
-
我只是在猜测。请发布您自己的答案并解释您发现了什么以及如何修复它。