1.输入汉字,输出内码
2.输入内码,输出汉字简体和繁体会有什么不同?
2.输入内码,输出汉字简体和繁体会有什么不同?
解决方案 »
- CTreeCtrl的右键响应问题
- 关于附件中画图软件的客户区的设计
- 在支持视图的MDI中,怎样让每个新建的CView都在一个新的线程中?
- 求助
- 初学gdi编程的问题
- 为什么我的WebBrowser 加到对话框中,对话框就出不来了DoModal()返回是-1
- 我想把工具条嵌入IE,就是像金山快译的那种,但不知道怎么解决,哪位哥哥帮帮忙啊!谢谢!
- 又是这个错误:debug时编译正常,release时提示错误,高手帮忙
- 那位兄第能解释一下这三个函数的意思 g_hUpdateSemph = CreateSemaphore(NULL,1,1,NULL);
- 写ocx时经常会生成一个oca文件,oca是什么文件?
- 请问能否重载模态对话框构造函数?
- 想学编程用于单位信息系统开发,学哪种好呀?
char a[100], b[200], buf[3];
unsigned char c[100];
int i, len; memset(a, 0, 100);
memset(b, 0, 200); sprintf(a, "你好"); memcpy(c, a, 100); len = strlen(a); for (i=0; i<len; i++)
{
memset(buf, 0, 3);
sprintf(buf, "%02x", c[i]);
strcat(b, buf);
}
写了个函数:
BOOL HextoAscii(char* sHex,char* sReply)
{
int iLen,i,j=0;
BYTE * lsData;
BYTE * lsReply; if(sHex==NULL)
{
return FALSE;
}
iLen=strlen(sHex);
if((iLen%2!=0)||(iLen>1024))
{
return FALSE;
}
if(sReply==NULL)
{
return FALSE;
} iLen=strlen(sHex);
lsData=new BYTE[iLen];
lsReply=new BYTE[iLen/2+1];
memcpy(lsData,sHex,iLen);
for(i=0;i<iLen;i+=2)
{
if(((lsData[i]>='0'&&lsData[i]<='9')||
(lsData[i]>='a'&&lsData[i]<='f')||
(lsData[i]>='A'&&lsData[i]<='F'))&&
((lsData[i+1]>='0'&&lsData[i+1]<='9')||
(lsData[i+1]>='a'&&lsData[i+1]<='f')||
(lsData[i+1]>='A'&&lsData[i+1]<='F'))
)
{
if(lsData[i]>='0'&&lsData[i]<='9')
lsReply[j] = lsData[i]-'0';
if(lsData[i]>='a'&&lsData[i]<='f')
lsReply[j] = lsData[i]-'a'+10;
if(lsData[i]>='A'&&lsData[i]<='F')
lsReply[j] = lsData[i]-'A'+10;
lsReply[j]=(lsReply[j]<<4)&0xf0;
if(lsData[i+1]>='0'&&lsData[i+1]<='9')
lsReply[j] |= lsData[i+1]-'0';
if(lsData[i+1]>='a'&&lsData[i+1]<='f')
lsReply[j] |= lsData[i+1]-'a'+10;
if(lsData[i+1]>='A'&&lsData[i+1]<='F')
lsReply[j] |= lsData[i+1]-'A'+10;
j++;
}
else
break;
}
lsReply[j]=0x00;
memcpy(sReply,lsReply,j+1);
delete lsReply;
delete lsData;
return TRUE;
}整个测试流程char a[100], b[200], buf[3];
unsigned char c[100];
int i, len; memset(a, 0, 100);
memset(b, 0, 200); sprintf(a, "你好"); memcpy(c, a, 100); len = strlen(a); for (i=0; i<len; i++)
{
memset(buf, 0, 3);
sprintf(buf, "%02x", c[i]);
strcat(b, buf);
} memset(a, 0, 100); HextoAscii(b, a);在上班休息的时候写了,乱了点,你单比调试a和b内容变化就知道怎么回事了。调优的工作你自己做吧。功能是实现了。
{
WORD s='啊';
BYTE loValue = LOBYTE(s);///取低8位
BYTE hiValue = HIBYTE(s);///取高8位
int a=static_cast<int>(hiValue);
int b=static_cast<int> (loValue);
cout<<a<<endl;
cout<<b<<endl;
}