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

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


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

[cpp]view plaincopy
  1. // UNICODE十六进制数组转成中英文  
  2. // hex array to wchar_t*  
  3. // wchs == NULL, wchsLen as output(the size of wchs will be used)  
  4. // error: return -1  
  5. int YCodec::HexArray2WChars(char* hexarry, int hexarrylen, wchar_t* wchs, int* wchslen)  
  6. {  
  7.     if(hexarry == NULL || hexarrylen<=0) return -1;  
  8.     if(wchs == NULL){  
  9.         *wchslen = hexarrylen/2 + (hexarrylen%2==0 ? 0 : 1);  
  10.         return 1;  
  11.     }  
  12.     memset(wchs, 0, *wchslen * sizeof(wchar_t));  
  13.     char tmp[3];  
  14.     char* phex = hexarry;  
  15.     wchar_t* pwchs = wchs;  
  16.     for(int i=0; i<hexarrylen; i++){  
  17.         memset(tmp, 0, 3);  
  18.         tmp[0] = *phex++;  
  19.         if(++i >= hexarrylen)    break;  
  20.         tmp[1] = *phex++;  
  21.         // two char to a hex  
  22.         unsigned short hex = 0x0;  
  23.         hex = (tmp[0] & 0xff) << 8;  
  24.         hex |= tmp[1] & 0xff;  
  25.         // hex to wchar_t  
  26.         *pwchs++ = (wchar_t)hex;  
  27.     }  
  28.   
  29.     return 1;  
  30. }  

调用实例:

[cpp]view plaincopy
  1. <span style="white-space:pre">  </span>//wchar_t* unicode = NULL;  
  2.     char ascii[] = {0x62, 0x4b, 0x67, 0x3a,   
  3.                     0x53, 0xf7, 0x4e, 0x3a,  
  4.                     0x00, 0x31, 0x00, 0x38,  
  5.                     0x00, 0x38, 0x00, 0x38,  
  6.                     0x00, 0x37, 0x00, 0x36,  
  7.                     0x00, 0x35, 0x00, 0x35,  
  8.                     0x00, 0x32, 0x00, 0x31,  
  9.                     0x00, 0x30, 0x76, 0x84  
  10.     };  
  11.     int wchslen = 0;  
  12.     YCodec yCodec;  
  13.     // hex array to wchar_t*  
  14.     if(yCodec.HexArray2WChars(ascii, 32, NULL, &wchslen) != -1){  
  15.         wchar_t* wchs = new wchar_t[wchslen+1];  
  16.         memset(wchs, 0, sizeof(wchar_t)*(wchslen+1) );  
  17.         int n = yCodec.HexArray2WChars(ascii, 32, wchs, &wchslen);  
  18.         if(n != -1){  
  19.             // wchar_t to CString  
  20.             CString tmp;  
  21.             wchar_t * pwch = wchs;  
  22.             for(int i=0; i<wchslen; i++) tmp.AppendChar(*pwch++);  
  23.             m_Disp.SetWindowTextW(tmp);  
  24.         }  
  25.   
  26.         delete []wchs;  
  27.     }  
在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的十六进制字符数组转成中英文。

结果为:

手机号为18887655210的


基本测试通过,暂未发现神马问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html+选择弹出选项卡,javascript – Chrome扩展程序:从弹出窗口获取当前选项卡

我正在撰写Chrome扩展程序&#xff0c;在其中一部分&#xff0c;当弹出页面上的按钮被点击时&#xff0c;我需要获取当前选项卡的标题和URL。我之前已经和Chrome的消息传递系统一起工作了&#xff0c;并且经过许多努力&#xff0c;已经设法让它在许多场合工作。不过&#xff0c…

【转】Qtcreator中常用快捷键和小技巧

转自&#xff1a;https://blog.csdn.net/imxiangzi/article/details/48863855 https://blog.csdn.net/jh1513/article/details/52346802 快捷键及对应含义 下载地址&#xff1a;http://download.csdn.net/detail/jh1513/9615209 快捷键 功能 Esc 切换到代码编辑状态 F1 …

添加蜂窝注册表及永久存储

1、 添加 Hive-based Registry 在 Platform Builder 的“ Catalog ”窗口中&#xff0c;单击打开 Catalog->Core OS->Windows ce devices->File Systems and Data Store->Registry Storage(Choose 1)->Hive-based-based Registry 节点&#xff0c;选中 Hive-b…

interface abstract与virtual

interface用来声明接口 1.只提供一些方法规约&#xff0c;不提供方法主体 如 public interface IPerson { void getName();//不包含方法主体 } 2.方法不能用public abstract等修饰,无字段变量&#xff0c;无构造函数。 3.方法可包含参数 如 public interface IP…

【转】VS编译时自动引用Debug|Release版本的dll

转自&#xff1a;https://www.cnblogs.com/KevinYang/archive/2011/04/10/2011879.html 公司一些早期的项目&#xff0c;把所有工程都放到一个解决方案下了&#xff0c;导致整个解决方案编译很慢&#xff0c;而且也不便于类库的复用和维护。因此我们决定把工程按照功能划分到不…

asp 生成html文件,将指定的asp文件内容生成html文件_asp技巧

Function GetPage(url)dim RetrievalSet Retrieval CreateObject(“Microsoft.XMLHTTP”)With Retrieval.Open “Get”, url, False , “”, “”.SendGetPage BytesToBstr(.ResponseBody)End WithSet Retrieval NothingEnd FunctionFunction BytesToBstr(body)dim objstrea…

Delphi手动创建数据集

习惯了.net的DataTable&#xff0c;便习惯性的认为Delphi中也有类似的东西&#xff0c;结果搞了好久才搞定&#xff0c;看来看去是拿着Delphi实现.net的思想&#xff0c;生搬硬套了&#xff0c;不过倒也解决了一些问题语言间的思想差别还是有的呃。 1数据集的创建CreatDataSet…

WINCE基于hive注册表的实现

1.WINCE注册表概述 WINCE注册表保存着应用程序、驱动、用户参数配置和其他配置设定的数据&#xff0c;WINCE提供自由选择基于RAM还是基于hive的注册表&#xff0c;其中基于RAM注册表本质是堆栈文件&#xff0c;保存在RAM中&#xff0c;如果RAM的供电掉电了&#xff0c;除非OEM…

【转】DICOM之Print!!!!!!!!!

转自&#xff1a;https://blog.csdn.net/weixin_41556165/article/details/81064531 基本概念&#xff1a; Film:在DICOM协议中使用Film来统称不同的Hard Copy&#xff0c;例如photographic film和paper。 DICOM Print的数据流由Print Session、Print Job、Print&#xff08;h…

静态html js文件上传,js实现动态添加上传文件页面

发邮件是需要添加一些文件&#xff0c;每添加一个文件&#xff0c;页面上可以显示一个表单文件上传选项。此功能为&#xff1a;初始时刻只有一个添加按钮&#xff0c;当点击添加文件时&#xff0c;会增加一个选择文件和删除区域&#xff0c;同时显示上传按钮&#xff0c;当点击…

JS截取字符串

使用 substring()或者slice() 函数&#xff1a;split() 功能&#xff1a;使用一个指定的分隔符把一个字符串分割存储到数组例子&#xff1a;str”jpg|bmp|gif|ico|png”;arrtheString.split(”|”);//arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组 函…

WINCE6.0文件系统及存储管理器

*******************************LoongEmbedded******************************** 作者&#xff1a;LoongEmbedded 时间&#xff1a;2010.12.03 类别&#xff1a;WINCE嵌入式系统 ********************************LoongEmbedded******************************** Filesys.…

【转】Wireshark网络抓包(一)——数据包、着色规则和提示

转自&#xff1a;https://www.cnblogs.com/strick/p/6261463.html 一、数据包详细信息 Packet Details面板内容如下&#xff0c;主要用于分析封包的详细信息。 帧&#xff1a;物理层、链路层 包&#xff1a;网络层 段&#xff1a;传输层、应用层 1&#xff09;Frame 物理层…

昆明第八中学2021高考成绩查询,昆明市第八中学2021年招生录取分数线

同学们选择学校的时候肯定会先了解学校的招生分数&#xff0c;如果最新的招生分数还没有公布&#xff0c;可以参考以前的招生分数信息。具体为同学们分享下昆明市第八中学招生录取分数线的信息。学生想要选择到一流的学校就要有百分百的努力才行&#xff0c;因为好的学校要求也…

解决问题:HTTP 错误 401.1 - 未授权:登录失败【转】

解决问题&#xff1a;HTTP 错误 401.1 - 未授权&#xff1a;登录失败HTTP 错误 401.1 - 未授权&#xff1a;登录失败 Internet 信息服务 -----------解决这个问题&#xff0c;折磨了两天&#xff0c;终于搞定了&#xff0c;首先我按照其他仁兄的提示做了一遍&#xff1a;【解决…

【转】Wireshark网络抓包(二)——过滤器

转自&#xff1a;https://www.cnblogs.com/strick/p/6261915.html 一、捕获过滤器 选中捕获选项后&#xff0c;就会弹出下面这个框&#xff0c;在红色输入框中就可以编写过滤规则。 1&#xff09;捕获单个IP地址 2&#xff09;捕获IP地址范围 3&#xff09;捕获广播或多播地址…

html访问虚拟目录路径,IIS7.5虚拟目录物理路径指向共享文件夹详解

本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本。UNC是 Universal Naming Convention 的简称&#xff0c;也叫通用命名规范、通用命名约定。网络(范指局域网)上资源的完整位置名称。通常情况下&#xff0c;拥有多台服务器的朋友在使用IIS建立站点的时候&…

XML文档的基本操作

已知有一个XML文档&#xff08;bookstore.xml&#xff09;如下&#xff1a; <?xml version"1.0" encoding"gb2312"?> <bookstore> <book genre"fantasy" ISBN"2-3631-4"> <title>Oberons Legacy</title&…

delphi 发送html邮件,delphi发送html带附件邮件

varhtml: TIdText;beginif not SMTP.Connected thenSMTP.Disconnect();trySMTP.Connect;tryif SMTP.Authenticate then //验证beginEMessage.Recipients.EMailAddresses : FUser;EMessage.ClearBody;//清空正文html: TIdText.Create(EMessage.MessageParts);EMessage.Subject:N…

【转】DICOM:DICOM三大开源库对比分析之“数据加载”

背景&#xff1a; 上一篇博文DICOM&#xff1a;DICOM万能编辑工具之Sante DICOM Editor介绍了DICOM万能编辑工具&#xff0c;在日常使用过程中发现&#xff0c;“只要Sante DICOM Editor打不开的数据&#xff0c;基本可以判定此DICOM文件格式错误&#xff08;准确率达99.9999%…