在线急等~~ 在linux c++下 我想把汉字-->unicode 可是答应出来的是乱码 为何?
我做的是一个发短信的程序 中文需要转成unicode编码
目标:中文-->unicode
比如:你好吗-->4F60597D5417
我的代码打印的结果是:
inbuf:你好吗
outbuf:`O}YT //我想让它打印出4F60597D5417 不想打印出乱码 (我用ue查看了一下`O}YT 的十六进制是:60 4F 7D 59 17 54)
i:0
代码如下:
#include<iomanip>
#include<iostream>
#include<string.h>
#include<iconv.h>
#include<locale.h>
#include<stdlib.h>
//#include<easycics>
#define HG_LARGE_STR_LEN 255
using namespace std;
int testUnicode()
{
char inbuf[HG_LARGE_STR_LEN]="你好吗";
char outbuf[HG_LARGE_STR_LEN];
char* pin = inbuf;
char* pout = outbuf;
size_t inleft = strlen(pin)+1;
size_t outleft = HG_LARGE_STR_LEN;
iconv_t cd = iconv_open("ucs-2","utf-8");
if(cd == (iconv_t)-1)
return -1;
if((int)iconv(cd, &pin, &inleft, &pout, &outleft) == -1)
return -1;
iconv_close(cd);
//MEM_OBJECT::binaryToASCII((HGBYTE*)outbuf, HG_LARGE_STR_LEN-outleft, inbuf);
cout << "inbuf:" << inbuf << endl;
cout << "outbuf:" << outbuf << endl;
return 0;
}
int main(void)
{
int i = testUnicode();
cout<<"i:"<<i<<endl;
}