我正在构建一个要通过 NSStream 发送到服务器的数据包。我正在尝试用“§”(ascii 代码 167)分隔两条数据。这是构建服务器的方式,所以我需要尽量保持在这些范围内......
unichar asciiChar = 167; //yields @"§"
[self setSepString:[NSString stringWithCharacters:&asciiChar length:1]];
sendData=[NSString stringWithFormat:@"USER User%@Pass", sepString];
NSLog(sendData);
const uint8_t *rawString=(const uint8_t *)[sendData UTF8String];
[oStream write:rawString maxLength:[sendData length]];
所以最终的结果应该是这样的......并且它在第一次构造 sendData 时是这样的:
USER User§Pass
但是,当它在服务器端收到时,它看起来像这样:
//not a direct copy and paste. The 'mystery character' may not be exact
USER UserˤPas
...分隔符字符串的长度变为两个,并且最后一个字母从命令中被裁剪。我相信这是由 UTF8 转换引起的。
任何人都可以为我阐明这一点吗?
任何帮助将不胜感激!