首页 有关unicode,UTF 8及 ANSI等编码转换

有关unicode,UTF 8及 ANSI等编码转换

举报
开通vip

有关unicode,UTF 8及 ANSI等编码转换有关unicode,UTF 8及 ANSI等编码转换 有关unicode,UTF 8及 ANSI等 编码转换 1. ANSI 美国国家标准码,操作系统默认的编码格式;但是不同国家有不同的文字,由此各个国家制定了自己的国标码,如GB2312等。注意,各个国家制定时还是按照ANSI准则进行的:即不属于ASCII(0,127)的一个文字(符号)占两个字节,属于ASCII的占一个字节。这样一来,一个大字符串用不同国标码,解释的结果就不同(但一点就是,属于ASCII部分的字符解释出来是相同的)。 ANSI是编码,GB...

有关unicode,UTF 8及 ANSI等编码转换
有关unicode,UTF 8及 ANSI等编码转换 有关unicode,UTF 8及 ANSI等 编码转换 1. ANSI 美国国家 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 码,操作系统默认的编码格式;但是不同国家有不同的文字,由此各个国家制定了自己的国标码,如GB2312等。注意,各个国家制定时还是按照ANSI准则进行的:即不属于ASCII(0,127)的一个文字(符号)占两个字节,属于ASCII的占一个字节。这样一来,一个大字符串用不同国标码,解释的结果就不同(但一点就是,属于ASCII部分的字符解释出来是相同的)。 ANSI是编码,GB2312等国标码是符合ANSI标准的字符集。字符集与编码是两回事。 2. 字符 字符是一个符号,如:',','◎'等,存储时根据不同的编码标准可能占用1个或多个字节的空间。不同编码标准下,字符占用空间大小不同,如Unicode编码所有字符都是2个字节,utf-8编码占用从1个到6个不等。 3. 多字节字符串: 字符串在内存中,如果“字符”是以ANSI编码形式存放的,则一个字符可能使用一个字节或多个字节来表示,称这个字符串为ANSI字符串或多字节字符串。 4. Unicode: 统一码,任何字符都占两个字节。各个国家文字、符号统一编码。 VC++或其他编程工具对汉字或字符都采用操作系统的编码标准,一般都是ANSI标准。这就涉及往其它编码转化的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。 5. ANSI与Unicode 如果ANSI全部属于ASCII(0,127),则 mbstowcs, wcstombs 即可。因为Unicode对ASCII(0,127)的处理是“直接扩展ANSI”,,由一个字节到两个字节。 size_t mbstowcs( wchar_t *wcstr, const char *mbstr, size_t count ); size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count ); 对于不属于ASCII的,如汉字,使用 WideCharToMultiByte,MultiByteToWideChar。 int MultiByteToWideChar( UINT CodePage, // code page DWORD dwFlags, // character-type options LPCSTR lpMultiByteStr, // string to map int cbMultiByte, // number of bytes in string LPWSTR lpWideCharStr, // wide-character buffer int cchWideChar // size of buffer ); 6. 多字节到宽字符(Unicode) 待转换的字符并不一定是多字节字符串(ANSI字符串),uft-8编码的 也可以。 CodePage:待转换的代码页,如CP_ACP(ANSI),utf-8; dwFlags: 0; lpMultiByteStr,cbMultiByte:待转换 lpWideCharStr,cchWideChar:转换完 int WideCharToMultiByte( UINT CodePage, // code page DWORD dwFlags, // performance and mapping flags LPCWSTR lpWideCharStr, // wide-character string int cchWideChar, // number of chars in string LPSTR lpMultiByteStr, // buffer for new string int cbMultiByte, // size of buffer LPCSTR lpDefaultChar, // default for unmappable chars LPBOOL lpUsedDefaultChar // set when default char used ); 7. 宽字符(Unicode)到多字节 新字符串不必是多字节(ANSI)字符集。 CodePag:要转换成的代码页,如CP_ACP(ANSI),utf-8; dwFlags:0; lpWideCharStr,cchWideChar:待转换 lpMultiByteStr,cbMultiByte:转换完 lpDefaultChar,lpUsedDefaultChar:失败时缺省字符; 一个字符串中有utf-8,如何转换成ANSI, 首先,utf-8 到 Unicode 其次,Unicode 到 ANSI 代码如下: int ConvUtf8ToAnsi(CString& strSource, CString& strChAnsi) { if (strSource.GetLength() <= 0) return 0; CString strWChUnicode; strSource.TrimLeft(); strSource.TrimRight(); strChAnsi.Empty(); int iLenByWChNeed = MultiByteToWideChar(CP_UTF8, 0, strSource.GetBuffer(0), strSource.GetLength(), NULL, 0); int iLenByWchDone = MultiByteToWideChar(CP_UTF8, 0, strSource.GetBuffer(0), strSource.GetLength(), (LPWSTR)strWChUnicode.GetBuffer(iLenByWChNeed * 2), iLenByWChNeed); strWChUnicode.ReleaseBuffer(iLenByWchDone * 2); int iLenByChNeed = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)strWChUnicode.GetBuffer(0), iLenByWchDone, NULL, 0, NULL, NULL); int iLenByChDone = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)strWChUnicode.GetBuffer(0), iLenByWchDone, strChAnsi.GetBuffer(iLenByChNeed), iLenByChNeed, NULL, NULL); strChAnsi.ReleaseBuffer(iLenByChDone); if (iLenByWChNeed != iLenByWchDone || iLenByChNeed != iLenByChDone) return 1; return 0; } 8. Unicode 到 ANSI 其它 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 1. 调用CRT 函数wcstombs(); 2. 使用CString 构造器或赋值操作(仅用于MFC ); 3. 使用ATL 串转换宏; size_t wcstombs ( char* mbstr, // 接受结果ANSI串的字符(char)缓冲。 const wchar_t* wcstr, // 要转换的Unicode串。 size_t count ); // mbstr参数所指的缓冲大小。 MFC中的CString包含有构造函数和接受Unicode串的赋值操作,所 以你可以用CString来实现转换。 // 假设有一个Unicode串wszSomeString... CString str1 ( wszSomeString ); // 用构造器转换 CString str2; str2 = wszSomeString; // 用赋值操作转换 ATL有一组很方便的宏用于串的转换。W2A()用于将Unicode串转换为ANSI串(记忆方法是“wide to ANSI”——宽字符到ANSI)。实际上使用OLE2A()更精确,“OLE”表示的意思是COM串或者OLE串。 9. VC6 IDE下查看Unicode字符的方法 unicode字符后面加",su"
本文档为【有关unicode,UTF 8及 ANSI等编码转换】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_180829
暂无简介~
格式:doc
大小:102KB
软件:Word
页数:7
分类:生活休闲
上传时间:2018-04-12
浏览量:32