ios jsonkit 报错_iOS关于JSONKit解析Unicode字符内容出错,问题出在\u0000

JSONKit虽然很强大,但是一些特殊的Unicode,比如\u0000是无法解析的。

在github上作者解释了这个问题,说这个是内容提供的错误,不符合标准的内容,所以他不认为这个是自己的错误,这个是内容提供者的问题。

作者的原话如下:

In this particular case, these services are very clearly "in the wrong". RFC 4627 is unambiguous that characters < 0x20are verboten. In cases like there, where something is clearly violating the standard, my default response is that "It's the other persons (web service) problem." The standard is the standard, and it is Right(tm), even its mistakes.

后来我使用了SBJson,解析成功。NSJSONSerialization,解析成功。

所以如果你喜欢使用JSONKit,但是你要解析的Unicode中含有\u0000的话,就要特殊处理,做判断,个人比较喜欢NSJSONSerialization,以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS开发中删除不可见的Unicode字符可以通过以下步骤实现: 步骤1:获取字符串中的Unicode字符 首先,我们将字符串转换成一个字符数组,然后逐个检查每个字符Unicode值。可以使用NSString的`characterAtIndex`方法来获取单个字符Unicode值,如下所示: ```objective-c NSString *str = @"Hello \u200BWorld!"; NSMutableArray *characters = [NSMutableArray array]; for (int i = 0; i < [str length]; i++) { unichar c = [str characterAtIndex:i]; [characters addObject:[NSNumber numberWithUnsignedInt:c]]; } ``` 步骤2:过滤不可见的Unicode字符 然后,根据Unicode字符的范围或特定的Unicode值,将不可见的字符过滤去。在Unicode表中,0x0000至0x001F范围内的Unicode字符通常是不可见的。 ```objective-c NSMutableArray *visibleCharacters = [NSMutableArray array]; for (NSNumber *unicodeValue in characters) { unichar c = [unicodeValue unsignedIntValue]; if (c >= 0x0020 || (c >= 0x0009 && c <= 0x000D)) { [visibleCharacters addObject:[NSString stringWithCharacters:&c length:1]]; } } ``` 步骤3:生成过滤后的字符串 最后,将过滤后的字符数组重新组合成一个字符串: ```objective-c NSString *filteredString = [visibleCharacters componentsJoinedByString:@""]; ``` 现在,`filteredString`中的不可见的Unicode字符已经被删除了。 注意:上述代码仅演示了删除不可见的Unicode字符的基本思路,具体的实现可能会根据你的需求而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值