中易网

vc 怎样把“abc你好”这个字符串,转换成utf-16编码。

答案:3  悬赏:0  
解决时间 2021-02-23 07:17
vc 怎样把“abc你好”这个字符串,转换成utf-16编码。
最佳答案
如果你是unicode编码 :
bool UnicodeToUTF8(vector<char>& pu8, const wchar_t* pun, int32 uLen)
{
// convert an widechar string to utf8
int32 utf8Len = WideCharToMultiByte(CP_UTF8, 0, pun, uLen, NULL, 0, NULL, NULL);
if (utf8Len<=0)
{
return false;
}
pu8.resize(utf8Len);
int32 nRtn = WideCharToMultiByte(CP_UTF8, 0, pun, uLen, &*pu8.begin(), utf8Len, NULL, NULL);

if (nRtn != utf8Len)
{
pu8.clear();
return false;
}
return true;
}
如果你是多字节编码:
WCHAR* lpszW = NULL;
try
{
lpszW = new WCHAR[nLen];
}
catch(bad_alloc &memExp)
{
return false;
}

int32 nRtn = MultiByteToWideChar(CP_ACP, 0, pmb, mLen, lpszW, nLen);

if(nRtn != nLen)
{
delete[] lpszW;
return false;
}
// convert an widechar string to utf8
int32 utf8Len = WideCharToMultiByte(CP_UTF8, 0, lpszW, nLen, NULL, 0, NULL, NULL);
if (utf8Len <= 0)
{
return false;
}
pu8.resize(utf8Len);
nRtn = WideCharToMultiByte(CP_UTF8, 0, lpszW, nLen, &*pu8.begin(), utf8Len, NULL, NULL);
delete[] lpszW;

if (nRtn != utf8Len)
{
pu8.clear();
return false;
}
return true;
}
全部回答
理论上破解MD5加密 因为它有一个不同的函数加密 你可以试试, 请注意,不开裂,但通过多年的积累,已经存在乱码相应的数据存储,如果你进的MD5店,那么你可以找到 但不一定是正确的,因为在不断变化的MD5函数的 。 。 。 连接, 这是 任何转换工??具,是不可能被破解 所谓的破解是他们有他们的数据库的16位代码的存在恰恰对应的不一定是正确的裂纹对应的代码,你或以上,可能是不同的功能
#include <stdio.h> #include <string.h> #include "stdlib.h" #include <conio.h> #define size 100 //定义一个栈 typedef struct { int x[size]; int top ; }stack; //栈初始化 void init(stack &p){ p.top=0; } //入栈 int push(stack &p,int &e){ if (p.top<size) { p.x[p.top++]=e; return 1; } return 0; } //出栈 int pop(stack &p,int &e){ if (p.top>0) { e=p.x[--p.top]; return 1; } return 0; } //将 n进制数据转化为十进制表示 void td(char s[],int n,int &num){ char *p; int e; p=s; num=0; while(*p){ if(*p>=&apos;a&apos;) //16 进制转化 e=*p-&apos;a&apos;+10; else e=*p-&apos;0&apos;; p++; num=num*n+e; } } //将十进制转化为 m 进制 void tp(int num,int m,char s[]){ // int n=0,e; char *p; stack b; init(b); p=s; while(num){ //将十进制数据逐位分离 压入栈中 此时 数据为倒序 n=num%m; if(n>9) e=n-10+&apos;a&apos;; else e=n+&apos;0&apos;; push(b,e); num/=m; } while(pop(b,e)){ //从栈中取出元素,存入数组 s 中 此时 数据为顺序 *p=e; p++; } *p=&apos;\0&apos;; //在数组 尾部加结束标志 } int check(char s[],int n){ char *p; p=s; if(n<=10){ while(*p){ if(*p-&apos;0&apos;>n) return 1; p++; } } else if(n>10){ while(*p){ if(*p>=&apos;a&apos;&&*p-&apos;a&apos;+10>n) return 1; p++; } } return 0; } void trans(char s[],int n,int m){ int *p,num; td(s,n,num); s[0]=&apos;\0&apos;; tp(num,m,s); } void main(){ int n,m; char s[size],c; int fp=1; //是否结束的标志 do{ puts("\t\t\t数据的各个进制之间的转化\n"); s[0]=&apos;\0&apos;; //数组初始化 printf("\n输入一个数据: "); gets(s); //读入数据 字符串型 printf("\b输入原来的进制 和 要转化的进制, 如 10-2 : "); scanf("%d%c%d",&n,&c,&m); //读入 进制转化 由 n进制转化为 m进制 输入形式 如:10-2 16-2 if(check(s,n)) { //判断是否合法 printf("\n\t错误 !输入的数据与进制不相配, 按任意键,继续输入。"); getch(); } else{ printf("\n结果\n\t\t\t%d 进制 : %s ",n,s); trans(s,n,m);//转化 printf("\n \t\t\t%d 进制 : %s \n\n",m,s); //输出 数据 字符串型 printf("\t\t\t继续输入 1, 退出输入 0: "); scanf("%d",&fp); } c=getchar(); //读取 回车键 system("cls"); }while(fp); }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
近期去济州岛旅行安全吗?
龙龙龙虾怎么去啊,有知道地址的么
村边的小河什么地流躺着
我是安丘的,儿子三岁了,喜欢敲敲打打,想让
中国移动全线通手机卖场在哪里啊,我有事要去
世界上还有几个多民族国家
泰洁客栈在哪里啊,我有事要去这个地方
男孩对我说:“我要让你看看里面藏着什么。”
dota2进入后 怎么进入游戏
MU2340到虹桥机场哪个航站楼接机
海滨参苗养殖厂地址有知道的么?有点事想过去
金升缘快餐旅店怎么去啊,有知道地址的么
京东返邮费怎么到支付宝
东盈字井在哪里啊,我有事要去这个地方
母猪有下二十四个小时的吗
推荐资讯
比亚迪大道在哪里啊,我有事要去这个地方
电脑开机后,一直黑屏,在左上角有一个小白块
一般面试失败是什么样的,我前天去面试不知道
小米2amiui7怎么降miui5
为什么我的电脑开机的时候密码栏自动输入字母
温州雁荡山要过几个山洞
暗影格斗2腾讯版的可以修改吗~
龙星国际洗衣地址在什么地方,想过去办事
钢木门怎样装锁
快订婚了,有神马感觉????
大学生穿什么价位的衣服裤子合适
跪求!!中小企业内部控制失效的公司有哪些?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?