中文文件夹拷贝到服务器后变乱码,Perforce(P4)服务器设置Unicode模式解决中文文件、文件夹乱码问题...

这篇博客介绍了如何在Linux服务器上将正在使用的Perforce(p4d)服务从非Unicode模式转换到Unicode模式。过程中可能会遇到因历史数据编码问题导致的错误,解决方法包括停止服务、创建checkpoint备份,然后手动修改checkpoint.x文件的编码。此外,还详细说明了使用p4adminstop命令停止服务和使用p4d-xi命令切换Unicode模式的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题出现时的环境是这样的:p4d位于Linux服务器中,

切换Unicode模式的方法很简单,就是通过p4d命令行,在当前路径为P4ROOT的位置执行p4d -xi,成功的话会得到会在unicode mode运行的提示,显然这个操作在刚建好P4ROOT时执行是100%没问题的,但如果是在已经使用了一段时间的root中执行,往往就会因为有过非Unicode编码文字的操作而导致类似这样的错误:

Table db.user has 14 rows with invalid UTF8.

Table db.domain has 1 rows with invalid UTF8.

这时就需要对root中的数据库信息进行手动编码转换了:

首先要停掉p4d服务,可以使用行p4 admin stop来完成,这里如果没有设置过连接环境变量参数的话,可以先执行p4 -p 192.168.0.1:1666 -u username login,输入账号username对应的密码进行登录验证,成功后再执行p4 -p 192.168.0.1:1666 -u username admin stop来关掉服务。

下一步需要创建checkpoint备份,命令行如下:p4d -r root -jc,其中root是实际p4root文件夹所在路径,执行后会创建checkpoint.x和checkpoint.x.md5两个备份文件以及更新journal.x的信息。需要手动修改的就是checkpoint.x这个文件中的文本编码,我用的是windows下的programmer’s notepad直接修改文件编码为

文字加密小工具v3

请输入要加密的内容

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值