C++字符转化.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C字符转化

C++字符编码转换函数 ?(2011-03-17 17:47:05) 1.MultiByteToWideChar 函数功能:该函数映射一个字符串到一个宽字符(unicode)的字符串。由该函数映射的字符串没必要是多 字节字符组。 函数原型: int MultiByteToWideChar( UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cchMultiByte, LPWSTR lpWideCharStr, int cchWideChar); CodePage[in]:指定执行转换的源代码页,这个参数可以为系统已安装或有效的任何代码页所给定的值。你也可以指定其为下面的任意一值:CP_ACP:ANSI代码页;CP_MACCP:Macintosh代码页;CP_OEMCP:OEM代码页; CP_UTF7:使用UTF-7转换;CP_UTF8:使用UTF-8转换。等等 dwFlags[in]:意义上网查,一般为0; lpMultiByteStr[in]:指向将被转换字符串的字符。 cchMultiByte[in]:指定由参数lpMultiByteStr指向的字符串中字节的个数。如果这个值为-1,字符串将被设定为以NULL为结束符的字符串,并且自动计算长度。 lpWideCharStr[out]:指向接收被转换字符串的缓冲区。 cchWideChar[in]:指定由参数lpWideCharStr指向的缓冲区的字节个数。若此值为零,函数返回缓冲区所必需的宽字符数,在这种情况下,lpWideCharStr中的缓冲区不被使用,lpWideCharStr可设为NULL 返回值:如果函数运行成功,并且cchWideChar不为零,返回值是由lpWideCharStr指向的缓冲区中写入的宽 字符数;如果函数运行成功,并且cchMultiByte为零,返回值是接收到待转换字符串的缓冲区所需求的宽字 符数大小,包括NULL结束符;如果函数运行失败,返回值为零。 2.WideCharToMultiByte 函数功能:该函数映射一个unicode字符串到一个多字节字符串。 函数原型: int WideCharToMultiByte( UINT CodePage, DWORD dwFlags, LPWSTR lpWideCharStr, int cchWideChar, LPCSTR lpMultiByteStr, int cchMultiByte, LPCSTR lpDefaultChar, PBOOL pfUsedDefaultChar ); CodePage[in]:指定执行转换的目的代码页,参考MultiByteToWideChar函数中的此参数 dwFlags [in]:意义上网查,一般为0 lpWideCharStr[in]:指向将被转换的unicode字符串 cchWideChar[in]:指定由参数lpWideCharStr指向的缓冲区的字符个数。如果这个值为-1,字符串将被设定为以NULL为结束符的字符串,并且自动计算长度。 lpMultiByteStr[out]:指向接收被转换字符串的缓冲区。 cchMultiByte:指定由参数lpMultiByteStr指向的缓冲区最大值(用字节来计量)。若此值为零,函数返回lpMultiByteStr指向的目标缓冲区所必需的字节数,在这种情况下,lpMultiByteStr参数通常为NULL。 lpDefaultChar和pfUsedDefaultChar:意义上网查,一般都为NULL 返回值:如果函数运行成功,并且cchMultiByte不为零,返回值是由 lpMultiByteStr指向的缓冲区中写入的字节数;如果函数运行成功,并且cchMultiByte为零,返回值是接收到待转换字符串的缓冲区所必需的字节数;如果函数运行失败,返回值为零。 3.各种编码转换 //ascii和unicode之间的编码转换 size_t ascii_to_unicode(const char* src, wchar_t* dest, size_t dest_len, size_t src_len = 0) { ????if(src_len == 0) ????????src_len = strlen(src); ????return MultiByteToWideChar(CP_ACP, 0, src, static_castint(src_len), ????????dest, static_castint(dest_len)); } size_t unicode_to_ascii(const wchar_t* src, char* dest, s

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档