P4.Net 和 P4CHARSET

ran*_*ure 5 .net perforce p4.net

我正在使用 P4.Net 连接到我的非 unicode 服务器,但是我运行的某些命令失败:

              "Unicode clients require a unicode enabled server."
Run Code Online (Sandbox Code Playgroud)

如何在 P4.Net 中将 P4CHARSET 更改为无?我试过了

              P4Connection p4 = new P4Connection();
              p4.Charset = "none"
              p4.Connect()
Run Code Online (Sandbox Code Playgroud)

我还尝试在 p4.Run 命令之前更改字符集:

              p4.Charset = "none"
              p4.Run("where", "c:\\some\\random\\dir");
Run Code Online (Sandbox Code Playgroud)

我尝试将字符集设置为“none”、null 和“”。

如果我尝试将全局选项传递给 p4.Run 命令,它也不起作用。IE。

              p4.Run("-C none where", "c:\\some\\random\\dir");
Run Code Online (Sandbox Code Playgroud)

因“未知命令”而失败

有没有人在 P4.Net 脚本中更改 P4CHARSET 方面取得过成功?你怎么做呢?

Mik*_*nor 2

您是否尝试过从注册表设置中删除 P4CHARSET 和 P4COMMANDCHARSET?它们应该位于 HKEY_CURRENT_USER.Software.Perforce.Environment 中。我以前也遇到过和你类似的情况,最后我也是这样解决的。

另外,你用的是P4Win还是P4V?我不太确定 P4V,但我知道 P4Win 似乎存储每个连接的字符集信息。也许这会以某种方式干扰 P4.NET?

更新

C++ API 正在检测 Unicode 字符集,因为 P4CHARSET 设置为 none。p4 set P4CHARSET=从命令行运行修复了海报的问题。