ascii编译与unicode编译的区别是什么,谁能举个例子说说呢?
------------------------------------------------------------
我知道unicode与ascii的区别,但是我不明白,两种编译的本质区别是什么?
1.哪种情况下用ascii编译会出问题,一定要用unicode来编译呢?
2.unicode编译是不是总是有好处的,所以任何项目都按unicode来编译总没有坏处,这种理解对吗?
3.哪种情况下,用unicode编译并不如ascii编译更好?
------------------------------------------------------------
我知道unicode与ascii的区别,但是我不明白,两种编译的本质区别是什么?
1.哪种情况下用ascii编译会出问题,一定要用unicode来编译呢?
2.unicode编译是不是总是有好处的,所以任何项目都按unicode来编译总没有坏处,这种理解对吗?
3.哪种情况下,用unicode编译并不如ascii编译更好?
调用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,没界面的程序不多
后来他们突然发现,如果需要按照表格方式打印这些字符的时候,缺少了“制表符”。于是又扩展了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万多个。
你把你自己的电脑的区域设置改成英语美国,然后重启动之后再看看你之前能正确显示的中文界面还能显示正确不?
你能显示中文是因为线程的当前code page是中文. 换成不兼容的code page就是乱码