hur.cn - 华软网

 热门搜索

程序基于unicode编码与否有什么区别啊

  作者:未知    来源:网络    更新时间:2011/6/1
程序基于unicode编码与否有什么区别啊
---华软 网友回答---
ansi的执行到最后系统还是会把它转成unicode


直接用unicode来编写的话  执行速度会快一些吧  个人理解  不知道对不对
---华软网友回复---
当然有区别了,比如unicode下 char类型占用两个字节,ansi下占用1个字节
---华软网友回复---
区别大了。我感觉String就是UnicodeString(w_str).AnsiString(c_str)要特别指定。
---华软网友回复---
我都是用宽字符的,UNICODE用起来麻烦
---华软网友回复---
从windows NT 开始操作系统就从内部支持UNICODE了
因此即使你用ANSI形式,最终操作系统会把其转为
UNICODE,因此UNICODE的效率更高。
---华软网友回复---
区别大了,非 unicode 编码程序当中的中文字符到了非中文windows上一运行立马就变成乱码一团糟了
还有就是非 unicode 编码的程序移植到 WinCE 下面的时候费老劲了

所以我现在的程序都是 unicode 的啦
---华软网友回复---
5,6楼说的对。unicode从windows 2000开始就是默认的编码形式了。
必须unicode,一般人我告诉他。

---华软网友回复---
我以前用的是VC6.0现在用的是VS2010在编写程序时基于Unicode时遇到CString和char*总是出现很多错误,需要注意哪些东西啊 ,VC6.0都不会出错的VS总是出错,谁有这方面的文章让我学习一下呗
---华软网友回复---
VC6的话需要修改很多东西啊,比如字符串前要加 _T(x),很多字符串操作函数要换成宽字符的等等,
转换是件很烦的事。文章自己搜吧。
---华软网友回复---
大部分没什么区别,如果程序写的比较规范,基本不做改动就能同时在ansi/unicode下编译通过并正常工作。
---华软网友回复---
字符串用_T("")  char用TCHAR    相关函数用通用版的  很多其实都有两个版本类似XXXA、XXXW

这样怎么移植都行   如果用了特定的版本  那移植起来就必须改了...
---华软网友回复---
当然不同,对于汉字来说:
在UNICODE下,占用一个16位的整数
在ANSI下,占用两个8位的整数

对于英文字母来说:
在UNICODE下,占用一个16位的整数
在ANSI下,占用一个8位的整数

并且处理字符串的函数都不同,如果用MFC的话,MFC掩盖了这种区别。
---华软网友回复---
unicode貌似运行要快点
---华软网友回复---
现在的系统,API都是基于UNICODE的,如果用老的函数使用ANSI或DBCS的话,内核还要将其转换成UNICODE版本      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。