Perforce unicode 问题:使用非 ASCII 字符同步文件会导致截断
Perforce unicode issue: sync files with non-ascii characters leads to a truncation
我正在使用 P4/NTX64/2016.2/1487173 (2017/02/14)
和 Windows 7 64bit (Code Page is 936)
。我的服务器在 uniocde 模式下工作,服务器使用的字符集是 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 cp936 sync -f "//Depot/副本.txt"
但是,在翻译 unicode 类型的文件时,此解决方法失败。
我知道 Windows CMD 需要 cp936 encoded characters
。这是 perforce 命令行工具的某种错误吗?
尝试将 P4COMMANDCHARSET
设置为 cp936
-- 这将告诉 CLI 使用该字符集来翻译参数,而不是翻译文件内容。
例如:
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
我正在使用 P4/NTX64/2016.2/1487173 (2017/02/14)
和 Windows 7 64bit (Code Page is 936)
。我的服务器在 uniocde 模式下工作,服务器使用的字符集是 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 cp936 sync -f "//Depot/副本.txt"
但是,在翻译 unicode 类型的文件时,此解决方法失败。
我知道 Windows CMD 需要 cp936 encoded characters
。这是 perforce 命令行工具的某种错误吗?
尝试将 P4COMMANDCHARSET
设置为 cp936
-- 这将告诉 CLI 使用该字符集来翻译参数,而不是翻译文件内容。
例如:
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