ascii编译与unicode编译的区别是什么,谁能举个例子说说呢?
------------------------------------------------------------
我知道unicode与ascii的区别,但是我不明白,两种编译的本质区别是什么?
1.哪种情况下用ascii编译会出问题,一定要用unicode来编译呢?
2.unicode编译是不是总是有好处的,所以任何项目都按unicode来编译总没有坏处,这种理解对吗?
3.哪种情况下,用unicode编译并不如ascii编译更好?

解决方案 »

  1.   

    用ascii码编译,照样可以正常的处理中文呀,所以我不明白,用unicode编译的好处是什么?
      

  2.   

    软件要多语言化最好使用unicode。
      

  3.   

    ascii编译与unicode编译的区别是什么,谁能举个例子说说呢?
    调用windows API的函数不一样,API的函数外表看有2套,内部都是unicode,
    API函数名最后一个字母为A的是ascii
    是W的为unicode1.哪种情况下用ascii编译会出问题,一定要用unicode来编译呢? 
    没有对错之分,unicode有时方便一些
    2.unicode编译是不是总是有好处的,所以任何项目都按unicode来编译总没有坏处,这种理解对吗?
    不对,有界面的,调用第三方库的,强烈建议用 unicode,
    无界面的,不调用第三方库的最好用ascii
    第三方库包括windowsAPI,现在所有知名的库基本都是unicode了
    3.哪种情况下,用unicode编译并不如ascii编译更好?
    比如你写的基于winsock服务器程序,无界面,只是对内存操作...基本上都得用unicode,没界面的程序不多
      

  4.   

       计算机发明后,为了在计算机中表示字符,人们制定了一种编码,叫ASCII码。ASCII码由一个字节中的7位(bit)表示,范围是0x00 - 0x7F 共128个字符。
       后来他们突然发现,如果需要按照表格方式打印这些字符的时候,缺少了“制表符”。于是又扩展了ASCII的定义,使用一个字节的全部8位(bit)来表示字符了,这就叫扩展ASCII码。范围是0x00 - 0xFF 共256个字符。
      中国人利用连续2个扩展ASCII码的扩展区域(0xA0以后)来表示一个汉字,该方法的标准叫GB-2312。后来,日文、韩文、阿拉伯文、台湾繁体(BIG-5)......都使用类似的方法扩展了本地字符集的定义,现在统一称为 MBCS 字符集(多字节字符集)。这个方法是有缺陷的,因为各个国家地区定义的字符集有交集,因此使用GB-2312的软件,就不能在BIG-5的环境下运行(显示乱码),反之亦然。
       为了把全世界人民所有的所有的文字符号都统一进行编码,于是制定了UNICODE标准字符集。UNICODE 使用2个字节表示一个字符(unsigned shor int、WCHAR、_wchar_t、OLECHAR)。这下终于好啦,全世界任何一个地区的软件,可以不用修改地就能在另一个地区运行了。虽然我用 IE 浏览日本网站,显示出我不认识的日文文字,但至少不会是乱码了。UNICODE 的范围是 0x0000 - 0xFFFF 共6万多个字符,其中光汉字就占用了4万多个。
      

  5.   

    在非UNICODE下能处理中文是因为你的当前Locale是中国,也就是说对于非UNICODE字符,windows都尝试按照中文字符集去解释,然后再在内部转成UNICODE,所以你认为你能正确显示中文。
    你把你自己的电脑的区域设置改成英语美国,然后重启动之后再看看你之前能正确显示的中文界面还能显示正确不?
      

  6.   

    那不是ASCII, 是ANSI, ASCII只是ANSI的一个code page, windows通过MBCS/DBCS显示不同语言, 
    你能显示中文是因为线程的当前code page是中文. 换成不兼容的code page就是乱码
      

  7.   

    你不用Unicode的话,软件拿到英文系统上去就是乱码了
      

  8.   

    如果不是特别的原因(必须兼容windows 98以下的系统),就用unicodeUNICODE会带来效率的提高,多少损失一些存储空间(美国人要高达两倍),反正存储设备服从摩尔定理,就不要在乎了代码集是一个系统工程,常常和数据的存储和交换纠结在一起