iOS 字符串转码+解压

最近遇到这样的一个问题,从服务器上返回的字符串是经过压缩的。下面记录下解决方法

//
//  ViewController.m
//  字符串解压缩
//
//  Created by 杜甲 on 14-5-8.
//  Copyright (c) 2014年 杜甲. All rights reserved.
//

#import "ViewController.h"
#import "LFCGzipUtillity.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    //测试字符串
    NSString* data1r = @"%1F%C2%8B%08%00%00%00%00%00%00%00%05%C3%81%C3%81%11%00+%08%04%C2%B1j%C2%B6%01F%10%C2%9E%C2%A0g%C3%BF%25%C2%99%60%0F%05%C3%A3%C3%A4%C2%A0%C2%A4%1F%C3%A5%C3%88%C3%A9Km%C2%B4%C3%A9C%07ZL2%C3%B6%01%C3%84%C3%B2%C2%A5+0%00%00%00:222";//[request responseString];
    NSLog(@"%@",data1r);
    //第一次解码
    NSString* decode = [ self StringDecode:data1r];
    //转换成NSData
    NSData* data = [decode dataUsingEncoding:NSISOLatin1StringEncoding];
    //解压缩
    NSData* data13 = [LFCGzipUtillity uncompressZippedData:data];
    //
    NSString* str = [[NSString alloc] initWithData:data13 encoding:NSUTF8StringEncoding];
    //解码
    NSString* decode1 = [self StringDecode:str];
    NSLog(@"decode1 = %@",decode1);
}
- (NSString *)StringDecode:(NSString*)str
{
    return [[str stringByReplacingOccurrencesOfString:@"+" withString:@" "] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

输出:

decode1 = /测试字符串

代码下载:http://download.csdn.net/detail/qqmcy/7314665

iOS 字符串转码+解压,布布扣,bubuko.com

时间: 2024-10-12 22:35:29

iOS 字符串转码+解压的相关文章

iOS客户端的gzip解压

服务端使用gzip压缩,可以大幅度减小传输包的体积,加快客户端网络请求速度,为用户节省流量.当服务器返回的httpHeader的"Content-Encoding" 属性的值是gzip时,数据会自动被解压缩,但有时候在客户端还没拿到数据的时候,就已经被某些网关解压了,这样gzip就没有起到作用.因此可以约定其他策略,防止网关解压,例如在别的头属性中标记gzip. 如此,就需要我们自己来解压gzip数据.方法如下:添加framework库中的libbz2.1.0.dylib:给nsdat

PAT 1078. 字符串压缩与解压

PAT 1078. 字符串压缩与解压 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示.例如 ccccc 就用 5c 来表示.如果字符没有重复,就原样输出.例如 aba 压缩后仍然是 aba. 解压方法就是反过来,把形如 5c 这样的表示恢复为 ccccc. 本题需要你根据压缩或解压的要求,对给定字符串进行处理.这里我们简单地假设原始字符串是完全由英文字母和空格组成的非空字符串. 输入格式: 输入第一行给出一个字符,如果

(python3) 字符串压缩与解压

题目赘述: 本题需要你根据压缩或解压的要求,对给定字符串进行处理.这里我们简单地假设原始字符串是完全由英文字母和空格组成的非空字符串. 输入格式: 输入第一行给出一个字符,如果是 C 就表示下面的字符串需要被压缩:如果是 D 就表示下面的字符串需要被解压.第二行给出需要被压缩或解压的不超过1000个字符的字符串,以回车结尾.题目保证字符重复个数在整型范围内,且输出文件不超过1MB. 输出格式: 根据要求压缩或解压字符串,并在一行中输出结果. 输入样例 1:CTTTTThhiiiis isssss

PAT Basic 1078 字符串压缩与解压 (20 分)

文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示.例如 ccccc 就用 5c 来表示.如果字符没有重复,就原样输出.例如 aba 压缩后仍然是 aba. 解压方法就是反过来,把形如 5c 这样的表示恢复为 ccccc. 本题需要你根据压缩或解压的要求,对给定字符串进行处理.这里我们简单地假设原始字符串是完全由英文字母和空格组成的非空字符串. 输入格式: 输入第一行给出一个字符,如果是 C 就表示下面的字符串需要被压缩:

PTA乙级(1078 字符串压缩与解压 (20分))

1078 字符串压缩与解压 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805262018265088 1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <iostream> 5 #include <algorithm> 6 using namespace std

记录新项目中遇到的技术及自己忘记的技术点【DES加密解密,MD5加密,字符串压缩、解压,字符串截取等操作】

一.DES加密.解密 #region DES加密解密 /// <summary> /// 进行DES加密 /// </summary> /// <param name="pToEncrypt">要加密的字符串</param> /// <param name="sKey">密钥,必须为8位</param> /// <returns>以Base64格式返回的加密字符串</retur

IOS开发—图片压缩/解压成Zip文件

图片压缩/解压成Zip文件 本文介绍如何将图片压缩成Zip文件,首先需要下载第三方库ZipArchive 并导入项目中. ZipArchive 库地址:https://github.com/mattconnolly/ZipArchive 一.文档结构: 二.准备工作: 1.框架导入: 2.ZipArchive.m文件使用非ARC机制 三.代码示例: // // ViewController.m // UnzipImgDemo // // Created byLotheve on 15/4/10.

linux 源码解压安装apache

step1: 查看是否已安装apache软件,如果有则卸载原有的apache step2: 先装gcc和make yum -y install gcc yum -y install make yum -y install gcc-c++ 没有这个gcc-c++一会编译不prce step3: 从 http://httpd.apache.or 下载apache源码包httpd-2.4.4.tar.gz 然后从 http://apr.apache.org 下载apr-1.4.6.tar.gz和apr

C#字符串压缩与解压

1 public static string CompressString(string str) 2 { 3 var compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str); 4 var compressAfterByte = Compress(compressBeforeByte); 5 string compressString = Convert.ToBase64String(compressAfterB