Unicode与ANSI有何分别?特别是与编windows程序有什么关系?

解决方案 »

  1.   

    unicode所有字符都用两个字节来表示.
    ansi有255个单字节字符,但是汉字这样的双字节字符要占两个字节
      

  2.   

    但这与编程有什么具体的关系?比如何用unicode的字体
      

  3.   

    win98,me都是字符集是基于ansi(8位)的
    但winnt,2k以上的系统都是用unicode(16位)
    当你的程序使用是ANSI字符集时运行在win2k以上的系统上时,必须经过转换ANSI-->UNICODE
    所以,它的性能比使用纯unicode字符的程序要慢一些
    对于这种问题,我们可以采用这样的处理方法
    定义字符时用: TCHAR str;//TCHAR编译时可为unicode,又可为ansi
        转换时用:_T("hello");//转换"hello"为TCHAR型
    这样,处理后的字符串均可满足win98,及winnt以上系统要求,速度也相当快
      

  4.   

    ansi用一个字节表示所要描述的字符,他没有足够的能力表示汉字等宽字节字符,所以就出现了unicode,用两个字节表示一个字符。对于程序员来说有的需要不断在它们之间转化,具体体现应该是char与wchar_t的关系,我的理解
      

  5.   

    我也碰到了一个问题,在ANSI下的字体到UNICODE下就不能正常显示了,不知是什么原因?
      

  6.   

    unicode包容所有语言
    ANSI只有255