一份 XML 文件在网络传输的过程中,修改了其中的数值,如何会导致中文部分变乱码?

发布于 2022-09-02 01:30:18 字数 752 浏览 39 评论 0

已经解决:
刚刚试了一下,一份包含中文的文件,只要经过抓包工具的修改,到达客户端之后就会变成 ?????,基本确定是拦截的问题了…


首先本问题可能会涉及游戏存档修改,但不涉及具体某个游戏,目的仅为技术讨论,希望管理员手下留情,如果实在不合适,可删。

某个游戏,可以在线备份游戏存档,存档恢复的过程中,是一份明文的 XML 格式。
在传说的过程中,通过拦截等方式,将 XML 中的某些数字进行修改(例如金币),修改之后游戏存档正常恢复,并且游戏可以正常读取到修改之后的金币。
但是,游戏中的一些中文(例如人名)会变成 ?????? 一堆问号。

我尝试过:

  • 修改的数值长度不变化,例如原先 10000 金币,我就改成 20000 ,仍然乱码;

  • 将 content-length 的长度一起修改,仍然乱码;

  • 给中文部分加上 CDATA 标签,仍然乱码;

  • 我在修改数据的时候,是直接复制 XML 内容到编辑器修改,改完直接粘贴回去;

  • 也试过直接在抓包工具上修改,但也乱码;

原本是想改存档,但现在存档已经无所谓了,因为实在想不通为什么会导致中文部分变乱码,而其它部分却可以正常读取。

希望能讨论一下是什么原因,如果有哪位朋友知道我是说哪个游戏,也请不要提及名称~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不乱于心 2022-09-09 01:30:18

修改之后再粘贴回去的时候需要与原编码保持一致。

比如游戏本来使用的是UTF-8编码。你复制出来粘贴到文本编辑器中后可能会变成其他编码(例如GBK),这样改了之后再复制粘贴回去编码就不对了。

另外,看你的描述,你好像是用抓包工具来拦截数据的。那么抓包工具本身也可能会转码。比如游戏本来是用的是UTF-8编码,抓包工具抓到后显示给你时用的是GBK编码,那么你复制、粘贴回去的都将是GBK编码的文本,最后传到游戏中的时候肯定就不对了。

所以你应该检查:

  1. 游戏本身使用的编码

  2. 抓包工具使用的编码

  3. 文本编辑器粘贴回去时使用的编码

只有这3者编码都统一了才能得到最终正确的编码。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文