我在一些处理从服务器发送接收数据的设备上实现了app。 来自服务器的数据通常采用以下形式:
"1;username;someInteger;"
解析非常简单,我正在使用strtok
,您可以想象从该字符串中检索单个值,例如:1
,username
和someInteger
。< / p>
但是现在当服务器将unicode字符串发送给username
时可能会出现这种情况。
我认为好主意是使用编码为UTF-8字符串的用户名(我是对的吗?)。你有什么建议 - 我应该如何从字符串上面解析它?例如,用作分隔符的符号(例如,代替“;”),或用于从字符串上方提取username
的函数?
因为这是一些嵌入式设备,我想避免在那里安装一些第三方库(可能甚至不可能),所以更加“纯粹”的方式会更加可取。
答案 0 :(得分:4)
UTF-8中的字符';'
与ASCII中的相同,因为两个编码中的127个第一个字符相同。这意味着您仍然可以使用strtok
拆分';'
。
答案 1 :(得分:0)
UTF8的关键在于你几乎不需要做任何事情。 ASCII字符仍然编码为它们始终使用的相同ASCII字节,因此如果您只是继续使用分号分隔符,则根本不需要执行任何操作。