网站大量收购独家精品文档,联系QQ:2885784924

UNICODE与ANSI的区别.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UNICODE与ANSI的区别.pdf

UNICODE ANSI 的区别 什么是ANSI,什么又是UNICODE 呢?其实这是两种不同的编码方式标准,ANSI 中的字符采用8bit,而 UNICODE 中的字符采用16bit。(对于字符来说ANSI 以单字节存放英文字符,以双字节存放中文等字符, 而Unicode 下,英文和中文的字符都以双字节存放)Unicode 码也是一种国际标准编码,采用二个字节编 码, ANSI 码不兼容。目前,在网络、Windows 系统和很多大型软件中得到应用。8bit 的ANSI 编码只 能表示256 种字符,表示26 个英文字母是绰绰有余的,但是表示汉字,韩国语等有着成千上万个字符的 非西方字符肯定就不够了,正是如此才引入了UNICODE 标准。 在软件开发中,特别是使用C 语言的一些有关字符串处理的函数,ANSI 和UNICODE 是区分是用的, 那么ANSI 类型的字符和UNICODE 类型的字符如何定义,如何使用呢?ANSI 和UNICODE 又如何转换 呢? 一.定义部分: ANSI:char str[1024]; 可用字符串处理函数:strcpy( ), strcat( ), strlen( )等等。 UNICODE:wchar_t str[1024];可用字符串处理函数 二.可用函数: ANSI:即char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等以str 打头的函数。 UNICODE:即wchar_t 可用字符串处理函数:wcscat(),wcscpy(),wcslen()等以wcs 打头的函数。 三.系统支持 Windows 98 :只支持ANSI 。 Windows 2k :既支持ANSI 又支持UNICODE。 Windows CE :只支持UNICODE。 说明 1 在COM 里面只支持UNICODE。 2 .Windows 2000 整个OS 系统都是基于UNICODE 的,为此在windows 2000 下使用ANSI 是需 要付出代价的,虽然在编码上不用任何的转换,但是这种转化是隐藏的,是占用系统资源的(CPU,内存)。 3 在Windows 98 下必须使用UNICODE,则需要自己手动的编码切换。 四.如何区分: 在我们软件开发中往往需要即支持ANSI 又支持UNICODE,不可能在要求类型转换的时候,重新改变 字符串的类型,和使用于字符串上的操作函数。为此, 标准C 运行期库和Windows 提供了宏定义的方式。 在C 语言里面提供了 _UNICODE 宏(有下划线),在Windows 里面提供了UNICODE 宏(无下划线), 只要定了_UNICODE 宏和UNICODE 宏,系统就会自动切换到UNICODE 版本,否则,系统按照ANSI 的方式进行编译和运行。 只定义了宏并不能实现自动的转换,他还需要一系列的字符定义支持。 1. TCHAR 如果定义了UNICODE 宏则TCHAR 被定义为wchar_t 。 typedef wchar_t TCHAR; 否则TCHAR 被定义为char typedef char TCHAR; 2 .LPTSTR 如果定义了UNICODE 宏则LPTSTR 被定义为LPWSTR 。(以前一直不知道LPWSTR 是什么东东,终于 明白了) typedef LPTSTR LPWSTR; 否则TCHAR 被定义为char typedef LPTSTR LPSTR; 补充一下: UTF-8 是可以用于真正的流式传输的,Unicode 是一种编码方案 我的理解是UTF-8 是Unicode 的一种具体实现。类似的实现还有UTF-16 等等。 ANSI/Unicode 字符和字符串 TChar.h 是String.h 的修改,用于创建ANSI/Unicode 通用字符串。 Unicode 字符串的每个字符都是16 位的。 Win9x 只支持ANSI;Win2000/XP/2003 支持ANSI/Unicode;WinCE 只支持Unicode 附:有部分Unicode 函数也可以在Win9X 中使用,但可能会出现意想不到错误。 wchar_t 是Unicode 字符的数据类型。 所有的Unicode 函数均以wcs 开头,ANSI 函数均以str 开头;ANSI C 规定C 运行期库支持ANSI 和Unicode

文档评论(0)

wuyouwulu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档