iOS中的URL解码 [英] URL decode in iOS

查看:162
本文介绍了iOS中的URL解码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Swift 1.2来开发我的iPhone应用程序,并且正在与http网络服务进行通信。

I am using Swift 1.2 to develop my iPhone application and I am communicating with a http web service.

我得到的响应是查询字符串格式(密钥) -value对)和以 .Net 编码的URL。

The response I am getting is in query string format (key-value pairs) and URL encoded in .Net.

我可以得到响应,但是看看使用Swift解码的正确方法。

I can get the response, but looking the proper way to decode using Swift.

示例响应为关注

status=1&message=The+transaction+for+GBP+12.50+was+successful

尝试以下方式解码并获得服务器响应

Tried following way to decode and get the server response

// This provides encoded response String
var responseString = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
var decodedResponse = responseString.stringByReplacingEscapesUsingEncoding(NSUTF8StringEncoding)!

如何替换字符串中的所有网址转义字符?

How can I replace all URL escaped characters in the string?

推荐答案

要编码和解码网址,请在项目的某处创建此扩展:

To encode and decode urls create this extention somewhere in the project:

Swift 2.0

extension String
{   
    func encodeUrl() -> String
    {
        return self.stringByAddingPercentEncodingWithAllowedCharacters( NSCharacterSet.URLQueryAllowedCharacterSet())
    }
func decodeUrl() -> String
    {
        return self.stringByRemovingPercentEncoding
    }

}

Swift 3.0

 extension String
    {   
        func encodeUrl() -> String
        {
            return self.addingPercentEncoding( withAllowedCharacters: NSCharacterSet.urlQueryAllowed())
        }
    func decodeUrl() -> String
        {
            return self.removingPercentEncoding
        }

    }

Swift 4.1

extension String
{
    func encodeUrl() -> String?
    {
        return self.addingPercentEncoding( withAllowedCharacters: NSCharacterSet.urlQueryAllowed)
    }
    func decodeUrl() -> String?
    {
        return self.removingPercentEncoding
    }
}

这篇关于iOS中的URL解码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆