谁给我讲讲GB2312,UTF_8,Unicode,ansi,GIG5都是什么意思,关系如何,改怎么转换啊?又该怎么识别他们是什么码呢?有没有这方面的VB代码啊?VB.net的也行。这几个码关系这么样总是弄不太清楚。有的小说,我放到手机上,调“东亚-GB2312”,显示的是乱码。但我调“标准字符集-通用字符集”则可以正常显示,请问这是什么码呢?

解决方案 »

  1.   

    1)最早的编码方式 ASCII,只支持英文,每个字符1字节(其实只用了7位,值编码 0-127)。2)然后不同的语言对 ASCII 进行扩充:
    a)法语、德语等等还是1字节,用到最高位就够用了(多了编码 128-255);
    b)而东亚语系如中文、日文等用DBCS不定长编码,英文还是1字节,用2字节表示扩充的字符。
    所有这些都称为 Ansi 编码,由于它们的编码是重叠的,所以要指明 GB2312、BIG5、JIS 等子编码方式才能正确解码。3)最后给每个语言单独划分编码区间,这就是 Unicode,最高标准是4字节编码,但是至今只用了2字节的编码空间,作为实际使用的子标准,通常 Unicode 是固定2字节编码。
    而 UTF-8 只是对 Unicode 做了不定长编码的转换,以便与 Unix 的现有的文件操作函数不起冲突。转换其实很简单,打开 WinXP 下的记事本,另存为,对话框最下面的编码选一个就可以了。
      

  2.   

    那转码该什么编程呢?除了VB的strconv函数以外,还能怎么用?有API可以调用么?另外:有的小说,我放到手机上,调“东亚-GB2312”,显示的是乱码。但我调“标准字符集-通用字符集”则可以正常显示,请问这是什么码呢?应该不是Unicode,因为我以前用记事本把这种码的小说存为Unicode后,用调“东亚-GB2312”,就正常显示了。还有就是,为什么记事本打开这几种码都不会乱码,它怎么识别的啊。
      

  3.   

    通用字符集就是 Unicode。能正确解码和能正确显示是两回事。
    也许你的手机选项是显示用的,而不是解码用的。