unicode 给世界上所有的语言字符编号,编码方式决定了二进制的序列,hash 函数通过二进制生成散列值, 那么哪天操作系统不采用这种编码方式了,编码出的二进制序列不同,那么散列值也不一样了,那不就解不开压缩报了? 比如中文”我“,使用 utf8 和 GBK 编码出的二进制序列是不一样的,压缩软件是如何判定输入的字符的编码方式的, 是使用操作系统的编码方式吗 不知道描述的对不对,有对编码熟悉的大佬说说吗 编码, 二进制, 散列值, 压缩
换新的编码肯定会有新的名字,不可能出出个新的 unicode 完全取代现有的 unicode 然后还叫 unicode , 软件判定或者说计算肯定是基于编码后的二进制内容,不管是什么编码方式不管明文是什么,只要编码后二进制是对的就能解,
1. Unicode 字符集: 每个字符对应的码点不会变化(只会添加新的 Code) 2. UTF-8/16/32: 是存储方案(编码方案),也不会变化,只会添加对新的 Unicode 字符集版本的支持。 3. 压缩软件没有办法知道用的什么格式,要不再元数据携带,要不最终用户告诉它使用的什么编码,要不靠猜测,要不靠诱探。 PS: 各个编码方案通过编码表是可以相互转换的,但是很多转换是不可行的,例如 ASCII 的字符集就很小,没法包容 UTF-8 的所有有效字符集。