如何获得Unicode 编码

xjq2003 中铁十局集团有限公司 产品经理  2013-05-16 10:31:34
4f 60 59 7d是“你好”的 Unicode 编码;

为何我下面的代码得到的不是这个值啊?
unsigned char buf[256];
UnicodeString Str="";
Str="你好";
strcat(buf,Str.t_str());
Index+=Str.Length();

我得到的buf里面的值不是unicode编码,

请问怎么得到Unicode码
...全文
118 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
笑话 2013-05-18
学习了
回复
xjq2003 2013-05-17
引用 3 楼 ccrun 的回复:
strcat是操作ANSI字符串的函数,你到底想实现啥?另外,UnicodeString对象的.t_str()是相当不靠谱的,在更高版本的C++Builder中,这个方法已经不建议使用。
就为了得到字符串中字符的Unicode编码,将这2个字节的编码发送的串口。
回复
我不懂电脑 2013-05-17
应该用memcpy的方法拷贝数据
回复
ccrun.com 2013-05-17
strcat是操作ANSI字符串的函数,你到底想实现啥?另外,UnicodeString对象的.t_str()是相当不靠谱的,在更高版本的C++Builder中,这个方法已经不建议使用。
回复
xjq2003 2013-05-17
引用 6 楼 ccrun 的回复:
搞这么复杂做什么啊,直接把UnicodeString中的数据强制转换成byte数据发就行了,如: UnicodeString str = L"通信故障"; SendToComm((LPBYTE)str.c_str(), str.Length() * 2);
回复
ccrun.com 2013-05-17
搞这么复杂做什么啊,直接把UnicodeString中的数据强制转换成byte数据发就行了,如: UnicodeString str = L"通信故障"; SendToComm((LPBYTE)str.c_str(), str.Length() * 2);
回复
缘中人 2013-05-16
你是xe版本吗,在cb6中 WideString abc=L"你好"; Caption = IntToHex(abc[1],4); 我没有xe版本
回复
xjq2003 2013-05-16
笨办法可以,有没有简单办法直接转char 类型得到unicod编码

   unsigned char buf[256];
   wchar_t   wcbuf[256];
   int Index=0;
   int ret;
   UnicodeString Str="";
Str="通信故障,";
		wcscpy(wcbuf,Str.c_str());
		for(int i=0;i<Str.Length();i++)
		{
			buf[Index+2*i]=wcbuf[i]/0x100;
			buf[Index+2*i+1]=wcbuf[i]&0xff;
		}
		Index+=Str.Length()*2;
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2013-05-16 10:31
社区公告
暂无公告