Perforce unicode问题:使用非ascii字符同步文件会导致截断

时间:2018-03-05 07:11:31

标签: unicode cmd perforce

我正在使用P4/NTX64/2016.2/1487173 (2017/02/14)Windows 7 64bit (Code Page is 936)。我的服务器工作在uniocde模式,charset服务器使用的是utf8-no-bom

当我在CMD中执行下面的命令时,//Depot/副本.txt而不是文件p4,同步了我的库中的所有文件。

  

p4 sync -f“// Depot /副本.txt”

我尝试添加-C utf8-C auto-Q utf8,但p4似乎截断了//Depot/副本.txt,这导致了完整的软件仓库同步,​​如下所示:

  

p4 sync -f

只有添加-C cp936才能解决此问题(实际上,this option仅控制unicode类型文件转换的行为):

  

p4 -C c9936 sync -f“// Depot /副本.txt”

但是,在翻译unicode类型文件时,此解决方法失败。

我知道Windows CMD需要cp936 encoded characters。这是perforce命令行工具的某种错误吗?

1 个答案:

答案 0 :(得分:2)

尝试将P4COMMANDCHARSET设置为cp936 - 这将告诉CLI使用该字符集来翻译参数,但不能用于翻译文件内容。

e.g:

p4 -Q cp936 sync -f "//Depot/副本.txt"

或:

p4 set P4COMMANDCHARSET=cp936
p4 sync -f "//Depot/副本.txt"

https://www.perforce.com/perforce/doc.current/manuals/cmdref/Content/CmdRef/P4COMMANDCHARSET.html