利用一个流,将你要转换的acii码,以byte的形式写入到该流中,然后用GB2312的编码方式读出即可。

解决方案 »

  1.   

    to robber(海盗):
      什么叫ASCII码半角字符、国标码全角字符?解释一下OK?
      难道GB2312就是国标码全角字符吗?
      不懂,还忘能告知!
      

  2.   

    8位和16位的区别吧!
    这主要是一些旧系统上的叫法,比如:在DOS 6.0以前的UCDOS汉字系统有这种叫法,为了表示汉字就将两个ASCII码来表示一个汉字编码的方法!
    gb2312是双字节码,自然相当于以前的两个ASCII码了!自然能够读出来了!
    我在以前的解答中有着方面的代码,你可以看看。好像是解决mail汉字乱麻的问题!
      

  3.   

    喔!我还以为半角和全角有另外的意思呢?
    原来指的是位数。哈哈!我知道了,谢谢 robber!
      

  4.   

    海盗老兄:这样子出来的东西是没有乱码,但不符合题意呀。
    不相信就去看一下GB2312的标准,全角的空格、字符、数字与标准ASCII码的对应编码是不同的,不仅仅是8位与16位的区别,在高8位是有区别的。
    举例:半角空格ASCII码是0x20,全角空格是 0xA1 0xA1
      

  5.   

    to luodi(无知者无畏) :
      我又胡涂了,全角、半角、GB2312、ASCII究竟有什么区别和联系啊?以前不知道
    全角、半角 究竟是什么意思?GB2312使用2个字节表示一个汉字。
    麻烦详细解释一下!拜托!
      

  6.   

    TO:wxyxl(断肠人) 
    你又不用汇编,搞这么清楚干吗?呵呵。
    老实说,我也不懂,呵呵。
      

  7.   

    对于汉字来说没有什么全角半角,统统都是全角,是GB2312的标准。
    对于标准ASCII中的字母数字及一切可打印字符来说,它们就是所称的半角,是一个字节。
    但是在GB2312标准中也存在这些可打印字符,但是目的是提供一个打印或屏幕上看上去相同的东西而已。但它与标准ASCII不仅仅是编码位数上(16对8)不同,而且它的后8位与标准ASCII码之间也不是直接相同的。
    你可以去查一下所谓的区位码,GB2312标准本身并没有直接规定一个汉字或全角字母在机器内怎么表示,现在采用的机器内表示(机内码)是采用区位码的变换格式,具体变换方法是在区位码的区和位上分别加一个数来与标准ASCII区别,具体是什么数我忘记了,不过这样处理后前8位与后位都不会是标准ASCII码了,最高位都会是1。
    好象一牵涉到汉字的编码,要讲的东西实在太多,先说到这,等想起什么来再补充吧。
      

  8.   

    to xiaoyou(三尺剑):
      你来啦!老兄,知道总比不知道好吧!
    to luodi(无知者无畏):
      讲的太好了,希望在CSDN上多发表几分专题。谢谢!