欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
安全、杀毒软件厂商误报提交方法大全 【宇轩】ASP WEB服务器
未知  C++中实现字符串编码转换GBK转UTF8
[ 发布日期:3年前 (2023-12-05) ]   [ 来自:本站原创 ] [分类:C\C++相关]
在C++中实现GBK和Utf8字符串的互转。
先定义字符串编码的codepage值。
#define CP_GBK 936
#define CP_UTF8 65001

Utf8字符串转GBK
[复制到剪贴板]

void Utf8Gbk
(const CString& szUtf8, CString& szGbk)
{
int buffLen = 0;
int wlen = szUtf8.GetLength();

WCHAR* wbuff = new WCHAR[wlen+1];

MultiByteToWideChar(CP_UTF8, 0, szUtf8, -1, wbuff, wlen);

buffLen = WideCharToMultiByte(CP_GBK, 0, wbuff, -1, NULL, 0, 0, 0);
char* gbk = new char[buffLen+1];
WideCharToMultiByte(CP_GBK, 0, wbuff, -1, (LPSTR)gbk, buffLen, 0, 0);

delete[]wbuff;

szGbk = gbk;

delete[]gbk;
}
?>


GBK字符串转Utf8
[复制到剪贴板]

void GbkUtf8
(const CString& szGbk, CString& szUtf8)
{
int buffLen = 0;
int wlen = szGbk.GetLength()*3;

WCHAR* wbuff = new WCHAR[wlen+1];

MultiByteToWideChar(CP_GBK, 0, szGbk, -1, wbuff, wlen);

buffLen = WideCharToMultiByte(CP_UTF8, 0, wbuff, -1, NULL, 0, 0, 0);
char* utf8 = new char[buffLen+1];
WideCharToMultiByte(CP_UTF8, 0, wbuff, -1, (LPSTR)utf8, buffLen, 0, 0);

delete[]wbuff;

szUtf8 = utf8;

delete[]utf8;

}
?>
如果文章对您有帮助,给个赞赏吧!
引用通告地址 (0):
复制引用地址https://www.rickw.cn/trackback/293
复制引用地址https://www.rickw.cn/trackback/293/GBK
[ 分类:C\C++相关  | 查看:3491 ]

暂时没有评论,快来发表一个评论吧。
发表评论
作者:   用户:[访客] 
评论:

表  情
禁止表情 | 禁止UBB | 禁止图片 | 识别链接
对不起,你没有权限上传附件!
验证:
 
PoweredBy R-Blog V1.00 © 2004-2026 WWW.RICKW.CN, Processed in second(s) , 7 queries    京ICP备17058477号-5