由于字符串中间的空字符,NSString内容被截断

时间:2012-02-18 15:46:52

标签: objective-c xcode cocoa

我在作为HTTP Post响应的一部分获得的字符串中间得到空字符。因此,即使字符串中包含更多数据,内容也只会打印到空字符。以下是说明问题的示例代码

 NSString *testString= @"v1db1���������¿¿sssss"; ->this line shows the null character warning
 NSInteger stringlength = [testString length];
 NSLog(@"String Length:%ld",stringlength);
 NSLog(@"String Value:%@",testString);

注意:测试字符串包含带问号的空字符。出于某种原因,如果我复制确切的字符串,我就无法保存帖子。

第一行显示一个警告" Null字符保留在字符串文字"在Xcode。

该程序的输出是

 String Length:21
 String Value:v1db1

解决这个问题的正确方法是什么?我正在考虑扫描NSString中的任何空字符并删除它。我得到空字符的原因是什么?

1 个答案:

答案 0 :(得分:0)

问题字符是UTF-8编码的东西(EF BF BD和C2 BF),它们直接在XCode中的引用字符串中处理得很严重。你需要转换它。类似的东西:

[ NSString stringWithUTF8String: [ @"v1db1���������¿¿sssss" cStringUsingEncoding: [ NSString defaultCStringEncoding ] ] ];