#include <locale.h>
setlocale(LC_ALL, "");
/**
* 获取多字节字符的第一个中文或者英文字符对应的unicode16进制,然后转10进制
*/
int getFirstIntOfMultiChar(char * chr) {
//转为宽字节编码
wchar_t * wstr = (wchar_t *) malloc(sizeof(wchar_t) * 100);
memset(wstr, L'\0', sizeof(wchar_t) * 100);
mbstowcs(wstr, chr, sizeof(wchar_t) * 100);
//转为16进制字符串
char res[4] = {0};
while (*wstr != L'\0') {
sprintf(res, "%x", *wstr);
break;
}
char * tmp;
int n = (int)strtol(res, &tmp, 16);
free(wstr);
return n;
}
转载于:https://my.oschina.net/u/3132973/blog/820087