我正在使用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命令行工具的某种错误吗?
答案 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