汉字内码转换是个很复杂的问题,你提的问题跟没提一样。
因为编码方式太多了,GB 就有4,5中之多,还有港台的big5, cjk,
微软的gbk, iso, unicode 等等,很多转换不是完全可逆的。
比如 big5->gb->big5 就可能得到的big 文本和原来big5的不同了。原因是big5字符集大于gb,
big5->gb 会损失一些字的编码,而gb->big5 最多能用到big5的6367个汉字。
又比如gbk 完全兼容(编码)gb2312,gb2312 是他的一个子集,同时big5中的汉字也包含在
gbk 中,不同的是big5 的编码不同了。所以gbk<=>gb或者 gbk<=>big5 可以无损失的转换。
但是gbk 不是国际标准,只有微软支持。还有涉及到unicode等等,
晕了吧?
找些这方面的书吧。