资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

通过typeid.name函数获得中文名类的中文名

一直想着能通过现成的typeid.name()函数直接获得我中文类的名字,可是却一直得到的乱码,网上搜索了好久也没有答案,最后终于在我不懈寻找下找到了解决方法。

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的夹江网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

最后发现是文字编码不同的原因,储存在代码中的编码方式,和通过cout输出出来的文字编码方式不同

这个我也不太懂,于是从网上找了许多编码方式转换的函数。试了好多不行,不过最后还是让我试到了。

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

转载自:https://www.cnblogs.com/babietongtianta/p/.html

不过注意,原文章中也提到了,使用过后要及时删除字符串指针。

于是就可以通过U2G(typeid(*this).name() + 6);得到了此类的中文名称。

那个+6是为了避去typeid前面不必要类型说明。只获得名称部分.


标题名称:通过typeid.name函数获得中文名类的中文名
标题路径:http://www.cdkjz.cn/article/dsoihhi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220