- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
unicode与字符串对象
Unicode与字符串对象
课程编号 C03 课程内容 nicode宽字节字符串的理解与区别,Unicode项目的创建与一般使用方法,CString类的使用,OLE类型字符串的介绍。 编写日期 2006-03-13 作者 高亚清 (gotter@163.com)
录
1. Unicode 2
1.1. Unicode简介 2
1.2. Unicode与ANSI之间的字符串转换 3
1.3. 建Unicode的VC++项目的一般步骤 4
2. MFC的CString类 5
2.1. CString实现的机制. 5
2.2. LPCTSTR 与 GetBuffer(int nMinBufLength) 6
2.3. FreeExtra()的作用 8
2.4. Format(...) 与 FormatV(...) 9
2.5. LockBuffer() 与 UnlockBuffer() 9
2.6. AllocSysString()与SetSysString(BSTR*) 9
3. COM 中的字符串BSTR和VARIANT 10
3.1. BSTR字符串类型 10
3.2. BSTR的包装类_bstr_t 10
3.3. _variant_t 11
Unicode
Unicode简介
如今,Windows操作系统的使用已经遍及世界,为使Windows操作系统及运行在操作系统上的应用软件更容易被世界所有国籍的用户所使用,需要使Windows及运行在其上的应用程序本地化,即使用用户本民族语言的字符集。字符集的不统一使得本地化变得很困难,这需要对操作系统的源代码根据不同的字符集进行全方位的定制,还要提供API的不同字符集的版本,此外,编写应用软件也要针对不同的字符集开发不同的版本。
在欧美地区,字符串被当作一系列以0结尾的单字节字符,这非常自然。使用strlen函数时,会返回一个以0结尾的单字节字符数组中的字符数。但是有些语言,如汉字,字符集的符号很多,而单字节字符集最多只能提供256个符号,这是远远不够的。因此,创立了双字节字符集DBCS(double byte character set)来支持这些语言。在双字节字符集中,字符串中的每个字符由1或2字节组成,因此也叫多字节字符集MBCS(multiple byte character set)。由于有些字符是1字节宽,而有些是2字节宽,这使得操作多字节字符串变得非常麻烦,使用strlen操作多字节字符串不能得到字符串的真正长度,而只能得到字符的字节数。
ANSI的C运行时库中没有支持多字节字符集的函数。VC++运行时库中包含有支持操作多字节字符串的函数,这些函数都以_mb开头,比如_mbstrlen。
Win32中提供了一些辅助函数来帮助操作多字节字符串。如表:
Win32中提供的操作多字节字符串的函数
函数 描述 LPTSTR CharNext(LPCTSTR lpszCurrentChar) 返回字符串中下一个字符的地址 LPTSTR CharPrev(LPCTSTR lpszStart,LPCTSTR lpszCurrentChar) 返回字符串中前一个字符的地址 BOOL IsDBcsLeadByte(BYTE bTestChar); 返回该字节是否是一个DBCS字符的第一个字节。
为了更方便地支持软件的国际化,一些国际著名的公司制定了一个宽字节的字符集标准—Unicode。该标准最早由Apple和Xerox公司在1988年创立,为发展和促进这一个标准,1991年创建了Unicode联盟,成员包括Adobe,Aldus,Apple,Borland,Digital,IBM,Lotus,Metaphore,Microsoft,
Novell,Sun,Taligent,Xerox等。
Unicode这个名称来自三个主要特征:通用(universal)—它解决了世界语言的需要;统一(uniform)—它为了保证效率而使用固定长度的代码;唯一(unique)—字符代码的重复将到了最低点。
Unicode字符串中所有字符都是16位的(2个字节),没有象MBCS字符那样的特殊字节来指示下个字节是同一字符的一部分还是一个新的字符,这意味着可以简单地增减一个指针来访问字符串中的所有字符。
由于Unicode用16位值来表示每个字符,因此可以表示65536个字符,这使得可对世界上所有的书面语言字符进行编码。目前,Unicode已经为Abrabic,Chinese bopomofo,Cyrillie(Russian),Greek,
Hebrew,Japanese kane,Korean hangul和English alphabets以及其他蚊子定义了码点(一个符号在字
您可能关注的文档
- CIMS系统业务运行管理要求.doc
- CMD命令名详细大全.docx
- COD标准测定方法-国标GB11914-89化学需氧量的测定.docx
- COB检验标准.doc
- cod重铬酸盐法化学耗氧量测定仪标准以及技术参数.doc
- COMSOL中的函数表达.doc
- COP-ENG-003检验测量和试验设备控制程序A0.doc
- COP-04风险应对措施控制程序.doc
- COP1COP3-会诊制度.doc
- COPD相关英文词汇.docx
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
原创力文档


文档评论(0)