从服务器响应中解析utf8字符串

时间:2013-10-30 08:49:49

标签: c++ c

我在一些处理从服务器发送接收数据的设备上实现了app。 来自服务器的数据通常采用以下形式:

"1;username;someInteger;"

解析非常简单,我正在使用strtok,您可以想象从该字符串中检索单个值,例如:1usernamesomeInteger。< / p>

但是现在当服务器将unicode字符串发送给username时可能会出现这种情况。

我认为好主意是使用编码为UTF-8字符串的用户名(我是对的吗?)。你有什么建议 - 我应该如何从字符串上面解析它?例如,用作分隔符的符号(例如,代替“;”),或用于从字符串上方提取username的函数?

因为这是一些嵌入式设备,我想避免在那里安装一些第三方库(可能甚至不可能),所以更加“纯粹”的方式会更加可取。

2 个答案:

答案 0 :(得分:4)

UTF-8中的字符';'与ASCII中的相同,因为两个编码中的127个第一个字符相同。这意味着您仍然可以使用strtok拆分';'

答案 1 :(得分:0)

UTF8的关键在于你几乎不需要做任何事情。 ASCII字符仍然编码为它们始终使用的相同ASCII字节,因此如果您只是继续使用分号分隔符,则根本不需要执行任何操作。