求助一下关于3DM软件乱码的事情
起因是这样的,之前在3大妈下载了一个单机的游戏修改器,然后修改器是再下载了一个组件还是什么的,我现在也不知道了。然后问题来了...自从那以后,3大妈的所有修改器都是乱码,包括同文件里的使用说明全是乱码,而且仅限于3大妈的软件。就是使用其他的软件一点问题就没有,感觉系统应该是没啥,但就不知道为啥仅仅是3dm的修改器受到了影响,想问问有没有其他人遇到了这个问题,有没有解决了的? 本帖最后由 lchunghan 于 2021-1-4 19:23 编辑Unicode是Unicode.org制定的编码标准,目前得到了绝大部分操作系统和编程语言的支持。Unicode.org官方对Unicode的定义是:Unicode provides a unique number for every character。Unicode所做的是为每个字符定义了一个相应的数字表示。比如,“a“的Unicode值是0x0061,“一”的Unicde值是0x4E00,这是最简单的情况,每个字符用2个字节表示。
Unicode.org定义了百万个以上的字符,如果将所有的字符用统一的格式表示,需要的是4个字节。“a“的Unicode表示就会变成0x00000061,而“一“的Unicode值是0x00004E00。实际上,这就是UTF32。
但是,大部分字符只使用2个字节就可以表示了。英文的Unicode范围是0x0000-0x007F,中文的Unicode范围是0x4E00-0x9FEF(总共20976个),真正需要扩展到4个字节来表示的字符少之又少,所以微软想出了直接使用2个字节来表示Unicode。Unicode就是两个字节的。对于那些需要4个字节才能表示的字符,使用一种代理的手法来扩展。这样的好处是大量的节约了存取空间,也提高了处理的速度。这种Unicode表示方法就是UTF16,至于UTF16-LE和UTF16-BE,与计算机的CPU构架有关。LE指Little Endian,而BE指Big Endian。一般的X86系统都是Little Endian。
由于欧洲和北美,实际上使用的编码范围在0x0000-0x00FF之间,只需要一个字符就可以表示所有的字符。即使是使用UTF16来作为内存的存取方式,还是会带来巨大的内存浪费,因此微软突发奇想就有了UTF8的编码方式。这是一种很灵活的编码,对于只需要1个字节的字符,就使用一个字节,对于中文等语言需要两个字节才能表示的字符,则通过一个UTF16-UTF8的算法实现相互之间的转换(浪费CPU资源了),而对于需要4个字节才能表示的字符,UTF8可以扩展到6个字节每个字符。UTF8使用的算法很有意思,大致映射关系如下:
UTF-32 UTF8
0x00000000 - 0x0000007F 0xxxxxxx
0x00000080 - 0x000007FF 110xxxxx 10xxxxxx
0x00000800 - 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
0x00010000 - 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0x00200000 - 0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0x04000000 - 0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
由于UTF8可以方便的转换为UTF16和UTF32。而且UTF8在每个操作系统平台上的实现都是一样的,也不存在跨平台的问题,所以UTF8成为跨平台的Unicode很好的解决方案。当然微软没考虑中文,由于中文每个字符需要3个字节才能表示。那么问题来了,出现乱码的问题在于编码和译码的格式不统一,例如编码为window 936格式译码为utf-8 , 通俗的说,去店里买的是一个球,然后别人问你球的形状,你拿出了一个正方体说这是球,于是大家都认不出了。
Win10 默认编码格式码和译码的格式不统一, 就像刚传话一样 ,你跟中间人说话 ,中间人记住了你说的话,告诉第三个人不一样的话 , 就是这个道理。
1.重新部署语言
2.重装系统
utf-8并不支持中文 ,所以一般只能选择BOM。微软有一个实验机制将win10系统统一utf-8(千万别点,你是中国人这个不是给你用的。)
当年索菲的炼金工房和菲利斯的炼金工房汉化就是这问题,游戏是utf-8中文上去多半乱码根本无解,所以这种东西直接打死,脑残暗荣自己不出中文,还不让汉化。
lchunghan 发表于 2021-1-4 19:18
Unicode是Unicode.org制定的编码标准,目前得到了绝大部分操作系统和编程语言的支持。Unicode.org官方对Uni ...
大佬说的很多东西真的不是很清楚...就想问,你的意思是要么重新部署语言,要么重装系统。那我肯定是要前者啊,问题是怎么重新部署语言呢?
页:
[1]