TeamCity VCS服务器端签出将文本文件从unicode更改为UTF-8

TeamCity VCS服务器端签出将文本文件从unicode更改为UTF-8,unicode,build,teamcity,perforce,Unicode,Build,Teamcity,Perforce,我有一个从Perforce签出代码的构建,但当我尝试将“VCS签出模式”设置为服务器端时,我知道它会将工作区(和代码)复制到构建代理。我发现它正在破坏我们构建中的一些类似于文本文件的文件。它正在将它们从UNICODE BOM更改为UTF-8,我们用来解析这些文件的工具在构建中失败 有人知道为什么TeamCity服务器端签出和复制会这样做吗?有人知道如何补救这种情况吗?谢谢 你说打击只发生在TeamCity。你能再检查一下它在当地的表现吗?从文件系统中删除该文件,然后运行p4 sync-f fil

我有一个从Perforce签出代码的构建,但当我尝试将“VCS签出模式”设置为服务器端时,我知道它会将工作区(和代码)复制到构建代理。我发现它正在破坏我们构建中的一些类似于文本文件的文件。它正在将它们从UNICODE BOM更改为UTF-8,我们用来解析这些文件的工具在构建中失败


有人知道为什么TeamCity服务器端签出和复制会这样做吗?有人知道如何补救这种情况吗?谢谢

你说打击只发生在TeamCity。你能再检查一下它在当地的表现吗?从文件系统中删除该文件,然后运行
p4 sync-f file
以从服务器获取新文件。BOM是否保留


如果您可以在本地复制BOM的丢失,那么您可能应该更改文件的文件类型(在P4V中,右键单击|更改文件类型|基本文件类型=Unicode或UTF-16,视情况而定)。

感谢您的帮助,我发现有问题的文件的类型是utf16,事实上Team City VCS根配置中有一个选项,可以启用utf16文件的处理(支持UTF-16编码)。这似乎解决了问题

您可以使用“p4 files//files/of/interest/…”来检查感兴趣文件的当前文件类型。好的,因此在Performce存储库中,这些文件的类型似乎是utf-16,因此,当它们从TeamCity签出并复制到构建代理时,不知何故,它们会被更改为utf-8。不确定为什么会发生这种情况,我想知道这是否与teamcity Performance的设置有关?