请问各位高手,我用了别人的GB转UTF-8代码,但是转换后不对.

zy2015036 zy2015036 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用了别人的GB转UTF-8代码,但是转换后和我实际要的转化效果是不一样的,调试运行发现转换的就不对.
请高手们帮我看看哪里错了.(不是代码运行错误,是转换后的结果和我要的UTF-8编码不一致.)

G转U的函数代码:

char* CAotoCallDlg::G2U(const char* gb2312)
{
int len = MultiByteToWideChar(CP_ACP, 0, gb2312, -1, NULL, 0);
wchar_t* wstr = new wchar_t[len+1];
memset(wstr, 0, len+1);
MultiByteToWideChar(CP_ACP, 0, gb2312, -1, wstr, len);
len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL);
char* str = new char[len+1];
memset(str, 0, len+1);
WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL);
if(wstr)
delete[] wstr;
return str;
}


头文件
char* G2U(const char* gb2312);

调用方式:
CString st,str;
GetDlgItemText(IDC_NEDIT,st);
char* ch =(char*)st.GetBuffer(st.GetLength());
char* chname = G2U(ch);
正确的应该是这样的:
魔兽争霸 ---- 榄斿吔浜夐湼
但是用上面的代码转换出的不是这样的.
请高手给看看.
...全文

相关推荐

完美转换UTF-8 到 GB2312(源代码和详细说明)

很多人用source insight 打开某些源码文件时,汉字显示为一堆乱码。这个问题是因为编码方式不同。记事本和一些编辑器默认编码方式是ANSI,在这种方式下输入汉字,其实就是GB系列的编码方式。不幸的是,广收欢迎的代码查看工具Source insight 虽然支持汉字,但是它不支持UTF-8。笔者感到疑惑的是,当初开发source insight的这帮人现在哪里去了?为何不继续开发?这么好的工具,却不再更新了,实在让人可惜。 可惜归可惜,程序还是要看。乱码怎么办?很多人用笨方法,用记事本打开源代码,再另存为ANSI格式的文件。如果文件只有几个,倒是既简单又实惠,然而,当你碰到成百上千的代码文件都是UTF-8时,你就会觉得这是梦魇了。 不过,不要怕。现在,完美的解决方法来了。

张志龙

JavaScript文件编码转换指南:GB2312到UTF-8

本文还有配套的精品资源,点击获取 简介:在多语言和跨平台数据交换中,字符编码至关重要。本文档主要关注从GB2312编码的JavaScript文件转换为更通用的UTF-8编码的过程。GB2312,作为首个中文编码标准,适用于简体中文,而UTF-8作为Unicode编码,能够表示世界上绝大多数语言的字符。转换的必要性在于UTF-8的广泛兼容性以及其在现代Web环境中的默认地位。...

谢兴豪

批量文件编码转换工具(Utf-8转GB2312、GB2312转Utf-8)

本工具可以根据需要批量将一个目录及其子目录下的所有文件转换为GB2312或Utf-8编码文件,绿色软件,无需安装。 需要.NET Framework v2.0 运行库支持。

zyg19800719

C#写的 GBK GB2312 UTF-8转换

C#写的 GBK GB2312 UTF-8转换 功能简单,仅供学习

joyanhui

GB2312转UTF-8(C代码)

本资源为GB2312转UTF-8的C语言代码,实现方式为查表的方式,提供了可以调用的接口,里面有makefile,用于别的平台自行修改。

十岁卖切糕丶
评论 8
收藏 已收藏
分享
返回顶部
zy2015036
VC/MFC 16,550 成员 421,606 内容