2025年UNICODE十六进制数组转成中英文

UNICODE十六进制数组转成中英文UNICODE 十六进制的数组转成中英文 实现 char 转换成中英文 每两个 char 合成一个 wchar t UNICODE 十六进制数组转成中英文 hex array to wchar t wchs NULL wchsLen as output the size of wchs will be

大家好,我是讯享网,很高兴认识大家。

UNICODE十六进制的数组转成中英文

实现char*转换成中英文,每两个char合成一个wchar_t:

// UNICODE十六进制数组转成中英文 // hex array to wchar_t* // wchs == NULL, wchsLen as output(the size of wchs will be used) // error: return -1 int YCodec::HexArray2WChars(char* hexarry, int hexarrylen, wchar_t* wchs, int* wchslen) { if(hexarry == NULL || hexarrylen<=0) return -1; if(wchs == NULL){ *wchslen = hexarrylen/2 + (hexarrylen%2==0 ? 0 : 1); return 1; } memset(wchs, 0, *wchslen * sizeof(wchar_t)); char tmp[3]; char* phex = hexarry; wchar_t* pwchs = wchs; for(int i=0; i<hexarrylen; i++){ memset(tmp, 0, 3); tmp[0] = *phex++; if(++i >= hexarrylen) break; tmp[1] = *phex++; // two char to a hex unsigned short hex = 0x0; hex = (tmp[0] & 0xff) << 8; hex |= tmp[1] & 0xff; // hex to wchar_t *pwchs++ = (wchar_t)hex; } return 1; }

讯享网
调用实例:

讯享网 //wchar_t* unicode = NULL; char ascii[] = {0x62, 0x4b, 0x67, 0x3a, 0x53, 0xf7, 0x4e, 0x3a, 0x00, 0x31, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x37, 0x00, 0x36, 0x00, 0x35, 0x00, 0x35, 0x00, 0x32, 0x00, 0x31, 0x00, 0x30, 0x76, 0x84 }; int wchslen = 0; YCodec yCodec; // hex array to wchar_t* if(yCodec.HexArray2WChars(ascii, 32, NULL, &wchslen) != -1){ wchar_t* wchs = new wchar_t[wchslen+1]; memset(wchs, 0, sizeof(wchar_t)*(wchslen+1) ); int n = yCodec.HexArray2WChars(ascii, 32, wchs, &wchslen); if(n != -1){ // wchar_t to CString CString tmp; wchar_t * pwch = wchs; for(int i=0; i<wchslen; i++) tmp.AppendChar(*pwch++); m_Disp.SetWindowTextW(tmp); } delete []wchs; }
在MFC程序中测试通过。


讯享网

已实现把0x62, 0x4b, 0x67, 0x3a, 0x53, 0xf7, 0x4e, 0x3a, 0x00, 0x31, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x37, 0x00, 0x36, 0x00, 0x35, 0x00, 0x35, 0x00, 0x32, 0x00, 0x31, 0x00, 0x30, 0x76, 0x84这一串unicode的十六进制字符数组转成中英文。

结果为:

手机号为的

小讯
上一篇 2025-03-24 14:27
下一篇 2025-02-14 22:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/15202.html