Linux系统下 宽字符处理的有关问题
Linux系统下 宽字符处理的问题
如题:
在Linux下 网络发送来数据是unsigned char数组存储
内容: #SsDISPLINE3, <STX>S:001/320<ETX>
其中黑色部分为 单字节字符 红色部分为Unicode 双字节字符 蓝色为特殊标记 <STX>为0x0D <ETX>为0x0003 要获取的数据部分是红色部分 斜杠 前的数据和 后的数据 有可能是1到999的数字 也就是说不定长度 获取的数据 用来显示 这个数据 是数字 以后有可能会传汉字过来 现在不知道该怎么截取数据 大神最好说详细点 具体用到那个函数 折腾了两天不了 传过来的数据是双字节 Linux下 wchar_t是4字节
不知道该怎么弄了 把我所有的分全部献上 但求一解
------解决思路----------------------
我觉得可以1个字符1个字符的遍历,碰到<就检查后续4字符是不是STX>,如果是,就记录后面的数据,直到碰到<符号
------解决思路----------------------
char buf0[100]={0},buf1[100]={0};
sscanf("<STX>S:001/320<ETX> ","%*[^>]%*[>]%[^/]%[/]%[^<]",buf0,buf1);
------解决思路----------------------
网络传输需要指定传输的字节数,没有字节数 你怎么分包,怎么解析?
如题:
在Linux下 网络发送来数据是unsigned char数组存储
内容: #SsDISPLINE3, <STX>S:001/320<ETX>
其中黑色部分为 单字节字符 红色部分为Unicode 双字节字符 蓝色为特殊标记 <STX>为0x0D <ETX>为0x0003 要获取的数据部分是红色部分 斜杠 前的数据和 后的数据 有可能是1到999的数字 也就是说不定长度 获取的数据 用来显示 这个数据 是数字 以后有可能会传汉字过来 现在不知道该怎么截取数据 大神最好说详细点 具体用到那个函数 折腾了两天不了 传过来的数据是双字节 Linux下 wchar_t是4字节
------解决思路----------------------
我觉得可以1个字符1个字符的遍历,碰到<就检查后续4字符是不是STX>,如果是,就记录后面的数据,直到碰到<符号
------解决思路----------------------
char buf0[100]={0},buf1[100]={0};
sscanf("<STX>S:001/320<ETX> ","%*[^>]%*[>]%[^/]%[/]%[^<]",buf0,buf1);
------解决思路----------------------
网络传输需要指定传输的字节数,没有字节数 你怎么分包,怎么解析?