如何将wpa_supplicant ssid字串转换为utf8
来源:互联网 发布:mac os x 10.12镜像 编辑:程序博客网 时间:2024/05/16 09:41
在PC平台 char *buf3 = "\xe8\xbf\x9e\xe7\x94\xa8\xe7\x94\xb5\xe5\xbd\xb1\xe5\x90\x8e\xe6\x82\x94\xe4\xba\x86\xe4\xba\x86\xe4\xbb\x96\xe5\x92\xaf";
Strlen(buf3)=30, 而不是120. 导致验证的过程中费了写周折。
snprintf(buf1, 120, "%s", buf3); Strlen(buf1)= 30;
后来采用如下方法逐个赋值验证才OK。
buf1[0] = '\\'; buf1[1] = 'x'; buf1[2] = 'e'; buf1[3] = '8';
下面接口可以直接调用将\xe8\xbf\x9e转换为对应的utf码, 转换前是12个字节,转换后是3个字节.
void mid_wifi_ssid_convert_utf8(unsigned char *ssid, char *bssid, int size) { int ssid_char; int i=0, j=0; bool bcheck; printf("%s size = %d \n", __func__, size); for (i=0; i < size; i++) { printf("%s j = %d \n", __func__, j); if (bssid[i] == '\0' || j >= WLAN_WIFI_SSID) { printf("%s end j = %d \n", __func__, j); break; } bcheck = ((bssid[i] == '\\' && bssid[i+1] == 'x') || (bssid[i] == '\\' && bssid[i+1] == 'X')); if ( bcheck && (bssid[i+2] >= '0' && bssid[i+2] <='f') && (bssid[i+3] >= '0' && bssid[i+3] <='f')) { ssid_char = (mid_wifi_ssid_convert_decimal(bssid[i+2]) << 4) + mid_wifi_ssid_convert_decimal(bssid[i+3]); if (ssid_char <= 255) { ssid[j] = ssid_char; printf("%s ssid_char = %d \n", __func__, ssid_char); } else { ssid[j] = 0; printf("%s invalid ssid info. ssid_char = %d\n", __func__, ssid_char); } i += 3; j++; } else { ssid[j] = bssid[i]; j++; } } ssid[j] = '\0';}unsigned char mid_wifi_ssid_convert_decimal(char ssid) { unsigned char ssid_char = 0; if (ssid >= '0' && ssid <='9') { ssid_char = ssid - '0'; } else if (ssid >= 'a' && ssid <='f') { ssid_char = ssid - 'a' + 10; } else if (ssid >= 'A' && ssid <='F') { ssid_char = ssid - 'A' + 10; } else { ssid_char = 0; } return ssid_char;}
//下面添加一段小插叙
/* skip
unsigned char char1 = 254;
char char2 = 254;
printf("char1 = %d\n",char1);
printf("char2 = %d\n",char2);
printf("char1 = 0x%02x \n",char1);
printf("char2 = 0x%02x \n", (unsigned char)char2);
printf("char1 = %x \n",char1);
printf("char2 = %x \n",char2);
char1 = 254
char2 = -2
char1 = 0xfe
char2 = 0xfe
char1 = fe
char2 = fffffffe *
0 0
- 如何将wpa_supplicant ssid字串转换为utf8
- 获取SSID以及将账户名转换为字符串类型的SSID
- 如何将字串 String 转换成int
- 如何将utf8转换成gbk
- iOS下如何将UTF8字符串转换为GB2312字符串(或者其他编码的字符串)
- 如何将一个GB2312的字符串转换为UTF8的NSString
- SQLSERVER2005 将查询结果转换为字串[接上一篇文章]
- VB不使用 API,将 Utf8 转换为 Unicode
- 将utf8等编码格式转换为shift_jis格式
- Ubuntu下将GBK文件转换为UTF8文件
- perl 转码操作将utf8格式转换为gb2312
- 将utf8等编码格式转换为shift_jis格式
- 利用python将文件转换为utf8 无BOM
- 如何将字串 String 转换成整数 int?
- 如何将字串 String 转换成整数 int?
- [Java]如何将字串 String 转换成整数 int
- 如何将字串 String 转换成整数 作者:逝秋
- 如何将字串 String 转换成整数 int
- Java中的泛型(1)
- oracle授权另外一个用户访问自己创建的数据对象
- myeclipse中的jdk版本问题
- comet的那些事儿
- Free_modbus源码的解析和modbus协议的一些理解
- 如何将wpa_supplicant ssid字串转换为utf8
- Java基础——继承接口抽象类
- 输入一个整数,判断这个整数各个位数之和是否为奇数
- iOS Xcode运行时上下黑边的解决办法
- 黑马程序员——Java基础--返回值类型
- 如何快速从Ubuntu系统的eclipse下导出jar包(MapReduce程序)
- memcached基本命令学习
- C++设计模式-Proxy代理模式
- Java学习日记之basic