崩溃报告中的启动器日志有概率乱码
检查项
- [X] 我已在 Issues 页面 和 常见&难检反馈及问题列表 中搜索,确认了这一 Bug 未被提交过。
描述
打开游戏崩溃后的启动器日志乱码, pcl文件夹下的日志没有乱码
重现步骤
似乎是游戏崩溃后有概率出现
日志与附件
记事本中更换成utf-8后依旧乱码
- 像 #4482
VS Code 可以正常识别绝大多数文字,其他编辑器不太行。
我不知道这可能是啥引起的……
@LTCatt VSCode部分乱码原因找到了
用WinHex检查了一遍乱码文件,蒙了
文件很显然是用UTF-8编码的,编码头也没问题
然后检查了一下文件编码和VSCode里部分显示异常的关联:
对应了一下正常日志文件,发现第六行处的一个乱码其实是个全角冒号:
我专门在一个空白文件里用UTF-8编码打了一个全角冒号,和故障文件一对比:
EF BC 9A变成了EF BC 3F
我又根据正常文件对比了多个乱码点:
确定所有乱码文字的末两个字符全部变成了3F
而且我这里文件用记事本UTF-8打开后乱码点位与VSCode中保持一致:
我还留意了一下乱码点位的位置,发现它们多位于“加载”二字后,也有很多为全角冒号:
好了,本人初三,能力到此为止!
乱码文件打开时用的是ANSI,PCL2日志正常用的是UTF-8,不知道是哪里出了问题,上面的截屏已经截到了格式信息
乱码文件打开时用的是ANSI,PCL2日志正常用的是UTF-8,不知道是哪里出了问题,上面的截屏已经截到了格式信息
至少我这里是这样
乱码文件打开时用的是ANSI,PCL2日志正常用的是UTF-8,不知道是哪里出了问题,上面的截屏已经截到了格式信息
至少我这里是这样
检查过了,故障文件用的UTF-8编码头和同样内容的ANSI(GBK)编码头一模一样,可能是Windows自带记事本将其误认为ANSI编码文件了
艹,真没有想到,当时还以为是编码的问题
又出现了 错误报告-2024-9-17_20.49.03.zip 这次是手动jvm崩溃后出现的
接下来就看修代码的龙猫的说法了(
中秋节都过完了龙猫还没有修好((
@wuxiangzhicao 想开点,下个版本应该就修了
还没修好?
我这里没法复现,需要一个复现方法……
Log1.txt 错误报告-2024-10-16_20.52.30.zip 换了台电脑也这样
捣鼓不出来复现方法。。。 换了java也一样
@wuxiangzhicao 要不你把PCL2所有文件打包传上来,我在我电脑上试试……?
@Louis-Harsune 文件在这 Desktop.zip
排查了一遍,路径之中没有中文,应该不是路径引起的...
也应该不是游戏的问题(原版和forge都一样) 系统分别用win10和win11试了一遍,还是会有这个问题
应该是游戏崩溃后输出的日志中的中文全部变成了乱码所导致的 错误报告-2024-10-17_16.34.47.zip Log1.txt
@wuxiangzhicao @LTCatt author给的乱码游戏崩溃输出文件里:所有中文乱码字符似乎都变成了EF BF BD,这玩意在ANSI(GBK)编码里对应的本来就是“锟斤拷”。
查了一下,用UTF-8编码保存文件时,连续两个“�”(也就是乱码替换符号)会被编码为0xEFBF BDEF BFBD,对应ANSI(GBK)里的“锟斤拷”。
所以有可能————这份乱码文件被使用UTF-8编码重新保存过(PCL2自己处理,或者author重新保存,或者压缩工具搞过,或者github上传干的),而真正的原始文件乱码要么还是“EF BF BD”,要么就是其他乱码情况。
我目前需要知道“EF BF BD”是否为文件原始乱码情况…………
说实话我这里没法本地复现要修就很蛋疼 orz 从日志获取到文件读取到写入到压缩,这么长的流程要靠瞪眼法找出来哪里有问题有点太抓瞎了……
我这里看也是EF BF BD
我还发现一个,当你在游戏崩溃后直接点查看日志时的mc日志中文部分没有乱码,而pcl2导出的错误报告中的mc日志的中文就乱码了(也就是EF BF BD)
错误报告-2024-10-19_17.29.11.zip
无聊翻pcl2内存发现了同样的EF BF BD
不会和这个有关吧...