【问题标题】:How to decode special characters in objective c如何解码目标c中的特殊字符
【发布时间】:2016-05-14 02:19:44
【问题描述】:

我是 iphone 开发的新手并正在开发一个演示应用程序,因为我得到了一个像“abc%26def”这样的字符串,我想将这种类型的文本解码为实际测试,我知道它非常基本的问题,但仍然我无法从链接中找到任何解决方案,所以任何朋友可以帮助我吗?

我的代码如下

 if(i%3==0)
                {
                    [dataDictionary setValue:[dataDictionary valueForKey:TRIPPER__KEY] forKey:CONTENT_KEY];
                    [dataDictionary setValue:CELL_TEXTFIELD_TRIPPER_COUNT forKey:@"cellIdentifier"];
                }
                else if(i%3==1)
                {

                    //*name = [(NSString *)self stringByReplacingOccurrencesOfString:@"+" withString:@" "];
                    NSString *name = [[dataDictionary valueForKey:NAME_KEY] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
                    [dataDictionary setValue:name forKey:CONTENT_KEY];
                    [dataDictionary setValue:CELL_TEXTFIELD_TRIPPER_NAME forKey:@"cellIdentifier"];
                    [dataDictionary setValue:@"Triper Name" forKey:@"placeHolder"];
                }

【问题讨论】:

  • 请不要在字典中使用valueForKey。使用objectForKeydataDictionary[NAME_KEY]valueForKey 并没有按照你的想法去做。

标签: ios objective-c decode encode


【解决方案1】:

使用这个:

NSString *name = [dataDictionary valueForKey:NAME_KEY];

代替:

NSString *name = [[dataDictionary valueForKey:NAME_KEY] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

更新

[[dataDictionary valueForKey:NAME_KEY] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

【讨论】:

  • 它给了我这样的结果 jigar%26makwan
  • 意思是在 [dataDictionary valueForKey:NAME_KEY] 上给你 jigar%26makwan?
  • 是的,完全是 frend。事情是我从远程服务器得到这个响应,我想将它们解码为实际字符,这意味着 "%26" 应该转换为 "&" a"%20 " 用于空格 ...等
  • 哦,让我试试这个
  • 它给了我“jigar%25%26makwana”
【解决方案2】:

我认为这肯定会起作用

NSString *str = @"abc%26def";   //put any string that you want
NSCharacterSet *setToKeep = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"];
NSCharacterSet *setToRemove = [setToKeep invertedSet]; //inverted set will have all other remaining symbol, char etc
NSString *newString =[[str componentsSeparatedByCharactersInSet:setToRemove]componentsJoinedByString:@""]; //this is the decoded string
NSLog(@"%@",newString);

如果您需要更多内容,请发表评论,我会修改答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多