1 第一个参数表示代码页: CP_ACP:ANSI代码页;CP_MACCP:Macintosh代码页;CP_OEMCP:OEM代码页;
CP_SYMBOL:符号代码页(42);CP_THREAD_ACP:当前线索ANSI代码页;
CP_UTF7:使用UTF-7转换;CP_UTF8:使用UTF-8转换。这个代码页是什么意思?能通俗的介绍下吗?
如果要把char*转换成wchar_t* 那么用什么代码页?2 第二个参数是dwFlags
标记MB_PRECOMPOSED和MB_COMPOSITE 不是很懂 这2个是互斥的 涉及一个术语“组合字符” 就是一个基本字符和一个非空字符组成 MB_PRECOMPOSED表示组合字符有唯一的字符值 MB_COMPOSITE分别有不同的字符值 这个我有点看不懂 什么意思? 这个字符值又是何意思? 如何影响我的转换3后面的参数cchMultiByte和cchWideChar的值包括最后的'\0'吗?4从这个字面意思是“从多字节字符转换到宽字符” 我的理解 这两个是一回事吖! 有什么不同? 我从char*想转换成wchar_t* 该怎么用这个函数转换
问题多了点 请高手指点迷津
CP_SYMBOL:符号代码页(42);CP_THREAD_ACP:当前线索ANSI代码页;
CP_UTF7:使用UTF-7转换;CP_UTF8:使用UTF-8转换。这个代码页是什么意思?能通俗的介绍下吗?
如果要把char*转换成wchar_t* 那么用什么代码页?2 第二个参数是dwFlags
标记MB_PRECOMPOSED和MB_COMPOSITE 不是很懂 这2个是互斥的 涉及一个术语“组合字符” 就是一个基本字符和一个非空字符组成 MB_PRECOMPOSED表示组合字符有唯一的字符值 MB_COMPOSITE分别有不同的字符值 这个我有点看不懂 什么意思? 这个字符值又是何意思? 如何影响我的转换3后面的参数cchMultiByte和cchWideChar的值包括最后的'\0'吗?4从这个字面意思是“从多字节字符转换到宽字符” 我的理解 这两个是一回事吖! 有什么不同? 我从char*想转换成wchar_t* 该怎么用这个函数转换
问题多了点 请高手指点迷津
2、是指例如Ä这类字符的处理方式,MB_PRECOMPOSED是将其作为一个字符转换,MB_COMPOSITE是将其转换为A¨两个字符,如果你要转换的字符串中不存在这类字符,这两个标志用哪个都没有影响。
3、源字符串如果指定长度为-1则必须以\0结尾,如果指定实际长度则不考虑\0,按指定长度转换;目的字符串与源字符串保持一致(要没有就都没有)。
4、多字节字符与宽字符的编码方式不同,宽字符就是Unicode字符,每个字符用两字节表示,多字节字符的长度不固定,例如"ABC"是多字节字符串,共4个字节,分别是0x41、0x42、0x43、0,L"ABC"是宽字符串,共8字节,分别是0x41、0、0x42、0、0x43、0、0、0,使用这个函数可以把"ABC"转换为L"ABC"。多字节字符串通常定义为char*类型,宽字符串通常定义为wchar_t*类型。