以前做java,字符集转转转,总是不得其道;
IDE的编辑器可以设置字符集(假设是utf-8),你输入的字符显示不是乱码,假设显示 你好! 其对应二进制假设是 (1110),本质上也就是1110。
你不去保存字符集,程序是不会知道你用什么字符集编的码,只知道是 (1110)二进制而已。
所以要显示 你好! 你必须知道(1110)用的什么字符集,不然就是乱码(假如gb2312 中1110 是 不好!) 那么就显示 不好! 显然和你想得到的结果不一样。
文本编辑器,只能统一设置字符集,就像qq聊天时你只能设置所有文字的字体,单个字体的设置做不到(html可以)。可以在程序中你可以,你可以规定 (1110)用什么字符集显示,而另外的char*用另一种字符集显示。
当然真正的字符集模型比这复杂。
再考虑下转码的问题。
接上面的假设,将 你好! 转成gb2312,假设在gb2312中 你好! 是 (1111);这就样就牵扯到怎么一一对应问题。下个ue验证一下(ue)可以看文字的二进制。
范 UTF-8字符集 十六进制 B7 B6 转为UCS-2 BIG ENDIAN 十六进制 FE FF 83 03。