Dut*_*432 1 iphone utf-8 nsstring nsstream
我正在构建一个通过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]];
Run Code Online (Sandbox Code Playgroud)
所以最终结果看起来应该是这样的......当sendData首次构造时它会这样做:
USER User§Pass
Run Code Online (Sandbox Code Playgroud)
但是,当它在服务器端收到时,它看起来像这样:
//not a direct copy and paste. The 'mystery character' may not be exact
USER UserˤPas
Run Code Online (Sandbox Code Playgroud)
...分隔符字符串的长度变为两个,最后一个字母从命令中被裁剪.我相信这是UTF8转换的原因.
任何人都可以为我阐明这一点吗?
任何帮助将不胜感激!
对于这个字符,UTF-8中的正确编码是双字节序列0xC2 0xA7,这是你得到的.(Fileformat.info对于这些东西是非常宝贵的.)这是LATIN-1集合之外的所以你几乎肯定想要使用NSISOLatin1StringEncoding而不是NSUTF8StringEncoding来获得单字节167编码.看看NSString -dataUsingEncoding:.
| 归档时间: |
|
| 查看次数: |
11334 次 |
| 最近记录: |