如何获得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码
...全文
226 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
笑话 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;

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧