我正在构造一个数据包,通过NSStream发送到服务器。我试图用'§'(ascii代码167)分隔两段数据。这是服务器的构建方式,所以我要尽量呆在这些界限内...NSStream,UTF8String&NSString ...凌乱的转换
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]];
所以,最后的结果应该是这样..和它的时候送出数据是第一构建:
USER User§Pass
然而,当在服务器端收到的,它看起来像这样:
//not a direct copy and paste. The 'mystery character' may not be exact
USER UserˤPas
......在分隔符字符串已成为两个长度,和最后一个字母正从命令裁剪。我相信这是UTF8转换的原因。
任何人都可以为我介绍一些这方面的信息吗?
任何帮助将不胜感激!
“'''(ascii code 167)”没有ascii code 167这样的东西。根据定义,ASCII只定义了128个字符(即只能达到127)。您的字符在某些编码中可能为167,如Latin-1。 – user102008 2011-04-29 22:08:14