vc++2005 下字符集默认是unicode有什么好处吗。
经常碰到书上讲的程序(书比较老是vc++6的)或是网上找到的代码运行时出错。后来才发现,只要把字符集改成末设置就可以了..想问的问题有两个,一个是unicode有什么好处...
经常碰到书上讲的程序(书比较老 是vc ++ 6的)或是网上找到的代码 运行时出错。
后来才发现,只要把字符集改成末设置就可以了..
想问的问题有两个,一个是unicode有什么好处。
另一个是碰到这种情况时如果不改字符集的话有什么好办法解决呢。
好像主要是在数据类型转换时候会出错。 展开
后来才发现,只要把字符集改成末设置就可以了..
想问的问题有两个,一个是unicode有什么好处。
另一个是碰到这种情况时如果不改字符集的话有什么好办法解决呢。
好像主要是在数据类型转换时候会出错。 展开
2个回答
展开全部
unicode支持世界上绝大多数语言的字符,包括中文、日文、韩文、泰文、英文等。multibyte的只支持英文等几种拉丁语系的字符。你可能要问“我用multibyte编译出来的程序也能正常显示中文啊”,那么你把这程序拷贝到泰文系统上运行试试,结果是中文都变成乱码了,而用unicode编译的就不会出这个问题。一般欧美老外写的程序都用multibyte,因为他们没考虑要支持东亚语言,而我们写程序要尽量用unicode。另外提醒几点:
1、程序中尽量使用TCHAR、_T、_tcslen这种变量或函数,这些属于中间类型。编译时,当你的工程属性中设置了Use Multi-Byte Character Set时,TCHAR被替换成char,_T被删除,_tcslen被替换成strlen;当设置了Use Unicode Character Set时,TCHAR被替换成wcahr_t,_T被替换成L,_tcslen被替换成wcslen。这样做的好处是:你的工程只需要更改一个选项,就可以在unicode和multibyte之间切换,任何一种编译都不会报错。
2、Not Set(未设置)相当于Use Multi-Byte Character Set。
1、程序中尽量使用TCHAR、_T、_tcslen这种变量或函数,这些属于中间类型。编译时,当你的工程属性中设置了Use Multi-Byte Character Set时,TCHAR被替换成char,_T被删除,_tcslen被替换成strlen;当设置了Use Unicode Character Set时,TCHAR被替换成wcahr_t,_T被替换成L,_tcslen被替换成wcslen。这样做的好处是:你的工程只需要更改一个选项,就可以在unicode和multibyte之间切换,任何一种编译都不会报错。
2、Not Set(未设置)相当于Use Multi-Byte Character Set。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询