Skip to content

先说解决方案

安装游戏时发现乱码字符立刻停止操作并转区运行安装程序进行安装.

解压时发现压缩包内有乱码字符修改代码页为日文后显示正常再进行解压缩.

解压或安装后如果出现了程序运行时提示找不到文件,大概率就是由于乱码导致的被引用的文件名发生了变动,这时候转区运行大概率无效,需要卸载后重新转区安装

部分游戏即使解压和安装时都没出错,运行时也可能出现乱码,这时候需要转区运行游戏

安装程序的转区操作和游戏的转区操作都请参考转区工具使用教程

压缩包代码页的转换

Bandizip用户直接点击右上角的代码页然后选择日语之后再点击解压

WinRAR用户点选右上角选项-->名称编码-->日语 Shift-JIS然后再点击解压到

TIP

修改代码页仅在当前打开的压缩包窗口中生效,即修改完成代码页关掉窗口再右键压缩包点击解压出来的文件仍然是乱码

BandizipWinRAR
转换后转换后

乱码的形成

乱码的成因我个人认为可以用刻舟求剑来比喻,

在计算机系统中,所有的文字符号都存储在字符集中,每个文字都有对应的码点,比如在ASCII字符集中字母A经过ASCII编码得到的值是65,那么65就是字符A在ASCII字符集中的码点

在存储文件时,存储的是占用空间更小的码点而非文字本身,而在不同的字符集中文字的排列和码点都不相同,于是当我们使用A字符集去打开B字符集保存的文件时就会产生错乱,同样的码点对应了不同的文字甚至于根本就没有对应的字符存在

我们玩Galgame通常会遇到的是Shift_JIS(日文常用编码)到中文编码转换过程中出现的乱码 举个例子

日文「こんにちは」在不同编码下的表示 在Shift_JIS编码中:

  • 「こ」: 0x82 0xB1
  • 「ん」: 0x82 0xF1
  • 「に」: 0x82 0xBF
  • 「ち」: 0x82 0xC1
  • 「は」: 0x82 0xD0

在GB2312编码中解释同一字节:

  • 0x82 0xB1 : 对应中文「鍙」
  • 0x82 0xF1 : 对应中文「鐟」
  • 0x82 0xBF : 对应中文「鐗」
  • 0x82 0xC1 : 对应中文「鐡」
  • 0x82 0xD0 : 对应中文「鐢」

那么当我们使用中文操作系统打开使用Shift_JIS编码的「こんにちは」就会显示成「鍙鐟鐗鐡鐢」

如果上面说的你没懂,可以看看这个视频,当然不懂也完全没问题

之所以要说乱码的形成原理,是为了让大家产生一些分析能力,遇到问题时不要直接来上三板斧,虽然大概率能解决,但终究不够优雅

最后更新于: