ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:16.92KB ,
资源ID:6649680      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6649680.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(UTF8与GB2312之间的转换.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

UTF8与GB2312之间的转换.docx

1、UTF8与GB2312之间的转换UTF8与GB2312之间的转换 相信一定有不少的程序开发人员时常会遇到字符编码的问题,而这个问题也是非常让人头痛的。因为这些都是潜在的错误,要找出这些错误也得要有这方面的开发经验才行。特别是在处理xml文档时,该问题的出现就更加的频繁了,有一次用java写服务器端程序,用vc写客户端与之交互。交互的协议都是用xml写的。结果在通讯时老是发现数据接受不正确。纳闷!于是用抓取网络数据包工具抓取数据,后来才发现原来是java上xml的头是这样的,而vc上默认的是GB2312。所以一遇到汉字数据就不正确了。去网上找资料,这方面的文章好象特别少,针对像这样的问题,下面我

2、介绍一下我自己写的一个转换程序。当然,程序很简单。如果有画蛇添足的地方,还望各位高手一笑了之。如果您对UTF-8、Unicode、GB2312等还是很陌生的话,请查看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, / bu

3、ffer for new string int cbMultiByte, / size of buffer LPCSTR lpDefaultChar, / default for unmappable chars LPBOOL lpUsedDefaultChar / set when default char used); /将宽字符转换成多个窄字符int MultiByteToWideChar( UINT CodePage, / code page DWORD dwFlags, / character-type options LPCSTR lpMultiByteStr, / string

4、to map int cbMultiByte, / number of bytes in string LPWSTR lpWideCharStr, / wide-character buffer int cchWideChar / size of buffer);/将多个窄字符转换成宽字符 需要用到的一些函数:CString CXmlProcess:HexToBin(CString string)/将16进制数转换成2进制 if( string = 0) return 0000; if( string = 1) return 0001; if( string = 2) return 0010;

5、 if( string = 3) return 0011; if( string = 4) return 0100; if( string = 5) return 0101; if( string = 6) return 0110; if( string = 7) return 0111; if( string = 8) return 1000; if( string = 9) return 1001; if( string = a) return 1010; if( string = b) return 1011; if( string = c) return 1100; if( strin

6、g = d) return 1101; if( string = e) return 1110; if( string = f) return 1111; return ;CString CXmlProcess:BinToHex(CString BinString)/将2进制数转换成16进制 if( BinString = 0000) return 0; if( BinString = 0001) return 1; if( BinString = 0010) return 2; if( BinString = 0011) return 3; if( BinString = 0100) ret

7、urn 4; if( BinString = 0101) return 5; if( BinString = 0110) return 6; if( BinString = 0111) return 7; if( BinString = 1000) return 8; if( BinString = 1001) return 9; if( BinString = 1010) return a; if( BinString = 1011) return b; if( BinString = 1100) return c; if( BinString = 1101) return d; if( B

8、inString = 1110) return e; if( BinString = 1111) return f; return ;int CXmlProcess:BinToInt(CString string)/2进制字符数据转换成10进制整型 int len =0; int tempInt = 0; int strInt = 0; for(int i =0 ;i string.GetLength() ;i +) tempInt = 1; strInt = (int)string.GetAt(i)-48; for(int k =0 ;k Gb2312ToUnicode(xmlStream+

9、oldCharLen); buffer = this-UnicodeToUTF_8(pbuffer); *(newCharBuffer+newCharLen) = *buffer; *(newCharBuffer +newCharLen +1) = *(buffer + 1); *(newCharBuffer +newCharLen +2) = *(buffer + 2); newCharLen += 3; oldCharLen += 2; newCharBuffernewCharLen = 0; CString string1 ; string1.Format(%s,newCharBuffer); finalCharBuffer = new charnewCharLen+1; memcpy(finalCharBuffer,newCharBuffer,newCharLen+1); return finalCharBuffer;程序都非常的简单,由于实在太穷。已经吃了两天的方便面。所以现在头昏,程序的详细说明就不写了。程序员到了像我这样的地步也真是少见。工资低没有办法。哎!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1