要怎么把它正确地显示出来?

解决方案 »

  1.   

    study, 三个字节, 那可真麻烦, 一般两个字节就够用了 (65536个字啊)
      

  2.   

    char str [ 256 ] = "一段UTF-8编码" ; //一段UTF-8编码 
    WCHAR* strA; 
    int i= MultiByteToWideChar ( CP_ACP , 0 ,(char*) str ,-1 ,NULL,0); 
    strA = new WCHAR[i]; 
    MultiByteToWideChar ( CP_ACP , 0 ,( char * ) str, -1, strA , i); i= WideCharToMultiByte(CP_UTF8,0,strA,-1,NULL,0,NULL,NULL); 
    char *strB=new char[i]; 
    WideCharToMultiByte (CP_UTF8,0,strA,-1,strB,i,NULL,NULL); 
    //strB即为所求 
    delete []strA; 
    delete []strB; 
    return 0;
      

  3.   

    请注意:
    typedef wchar_t WCHAR;    // wc,   16-bit UNICODE character
    这是VC6.0中的定义,好像不是三个字节?????????????????
      

  4.   

    以下的部分大多数内容摘自两只老虎网站编写的《无废话XML》,原书讲解比我这里详细的多,建议如果可能的话,还是读一下的好。首先说一下,一个字节能表示2^8=256种符号,不过ANSI定义的只有0~127,127之后的符号是扩展的,并不兼容,Dos中许多程序使用扩展的制表符制表,所以在中文Windows的DosBox中就显示的不正常了;而两个字节能表示2^16=65536种的符号,所以UniCode就能表示65536种符号,不过因为扩充的需要,事实上只使用了三四万,并保留了一个指定的空间用来在各种程序中自由使用,具体有那些,我就不说了。所谓UTF-16格式,虽然称之为变换格式,但是其变换方式很简单,基本和UniCode的格式一样,通常情况下并不需要变换,所以就不多说了。UTF-8格式比较不同,其编码为1~3个字节不等,其排列格式如下:图贴不上请原谅!其中的格式表示以位(Bit)为单位,红底黄字的是必须的格式,而黄底的是真正的编码,也就是说,单字节有7位可编码范围,双字节有11位可编码范围,三字节有16位可编码范围;因为单字节格式的范围正好是ASCII码的范围,而且其首位为零,所以和普通的ASCII的格式是一模一样的,也就是说,普通的英文字符串不需要进行转换就符合UTF-8格式,所以应该说是一种和英文兼容性最好的编码,也所以在IE5中加入了“总以UTF-8发送URL”,不过可惜的是,我们常用的中文URL其实不是UTF-8格式,而是GBK格式,硬要把GBK当成UTF-8来用,也难怪会出错了。关于UTF-8格式的使用,应该在文件处理上很有用处,至于以后会是UTF-8还是UTF-16占主流我不太清楚,不过即使不占主流的格式应该也有一定的支持者,了解一下也不为过。]]>http://Www.8594.neT/BLoG//blogview.asp?logID=818KusTaVBasic2004-08-09 01:29 AM
      

  5.   

    比如“火”字的编码是:
    E7 81 AB(都是16进制的);
      

  6.   

    BIG5好象是一个汉字占2个字节么,我要的是一个汉字占3个字节说。