gpt4 book ai didi

unicode - 如何防止从 Perforce unicode 文件中删除 BOM

转载 作者:行者123 更新时间:2023-12-01 12:44:49 26 4
gpt4 key购买 nike

我已将带有 .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 没有任何区别)。

例子:

  • 从 Perforce 中 check out 源文件
  • 将文件类型更改为 Unicode
  • 将文件内容转换为“带有 BOM 的 UTF-8”格式
  • 提交文件(现在文件仍将 BOM 保留在前 3 个字节中)
  • 从工作区中删除文件
  • 获取文件的最新版本(现在文件开头不包含 BOM)
  • 最佳答案

    好的,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... 被禁用,请确保以下(然后再次检查)
  • P4V 与服务器的连接已打开且正在运行
  • 包含仓库/工作区树的
  • Pane 已聚焦(单击内部以重新确保这一点)


  • 注释:
  • 如果你通常结合以上两种方式来访问 Perforce ,你需要同时应用这两种解决方案,否则你会得到混合的结果
  • 如果您想立即在现有文件 中添加/删除 BOM,请调整上述设置,然后从工作区中删除文件并再次添加它们(参见问题中发布的示例的步骤 5 6 )。更改文件内容的其他服务器操作(集成、合并等)将执行类似的
  • 有关其他编码选项及其对 BOM 的影响 ,请参阅 Internationalization Notes for P4D, the Perforce Server and Perforce client applications
  • 中的第二个表

    关于unicode - 如何防止从 Perforce unicode 文件中删除 BOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21204743/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com