• 主页
  • iOS
  • Flutter
  • Java
  • Markdown
所有文章 关于我

  • 主页
  • iOS
  • Flutter
  • Java
  • Markdown

iOS中URL编码和URL解码

2015-12-26

在iOS开发中网络请求时, 如果一个URL中包含中文, 如果不做处理, 这个请求是无法处理的, 甚至引起崩溃, 而和H5交互时也有可能获取到类似这样的URL字符串: %e4%b8%ad%e6%96%87. 此时就会用到URL编码和解码.

在iOS中, 我们可以为NSString新建一个Category, 为NSString扩展两个方法: 编码方法和解码方法, 方便使用.

//.h文件中

@interface NSString (Unicode)
/**URL编码*/
-(NSString *)URLEncoding;
/**URL解码*/
-(NSString *)URLDecoding;
@end

//.m文件中

@implementation NSString (Unicode)
-(NSString *)URLEncoding {
  if ([UIDevice currentDevice].systemVersion.floatValue >= 9.0) {
    return [self stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
  } else {
    return [self stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  }
}
-(NSString *)URLDecoding {
  if ([UIDevice currentDevice].systemVersion.floatValue >= 9.0) {
    return [self stringByRemovingPercentEncoding];
  } else {
    return [self stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  }
}
@end

  • 资料整理
  • iOS
  • Objective-C
  • Swift
iOS适配iOS7遇到的坑
iOS在一个view里面获取它所在的viewController
© 2023 coppco
Hexo Theme Yilia by Litten
  • 所有文章
  • 关于我

tag:

  • Shadowsocks
  • VPS
  • 翻墙
  • First
  • 杂谈
  • 新尝试
  • Java
  • Flutter
  • Dart
  • Elicpse
  • IDE
  • Shell
  • Linux
  • Markdown
  • 资料整理
  • iOS
  • Android
  • CentOS
  • GitLab
  • git
  • 持续集成
  • Intellij IDEA
  • JavaScript跨域
  • Jsonp
  • Dubbo
  • 分布式服务架构
  • HTML
  • JavaScript
  • jQuery
  • BootStrap
  • CSS
  • JDBC
  • MySQL
  • 数据库
  • XML
  • Tomcat
  • HTTP
  • Servlet
  • Request
  • Response
  • JSP
  • Cookie
  • Session
  • 事务
  • JavaBean
  • AJAX
  • JSON
  • Listener
  • Filter
  • 注解
  • Servlet3.0
  • RPM
  • nginx
  • JDK
  • Oracle
  • Hibernate
  • Struts2
  • Spring
  • SSM
  • MyBatis
  • SSH
  • Spring MVC
  • MQ
  • Redis
  • 策略模式
  • 全文搜索技术
  • Lucene
  • Solr
  • mirror
  • 镜像站
  • ruby
  • npm
  • Freemaker
  • 坑点
  • Cocoapods
  • Objective-C
  • Xcode
  • Swift
  • SwiftUI
  • Spring Boot
  • WebSocket
  • GCD
  • Swift3.0
  • App瘦身
  • iOS和JavaScript交互
  • iOS应用跳转
  • math
  • AutoLayout
  • Masonry
  • SnapKit
  • 三方框架的使用
  • Gitlab
  • 编程思想
  • 逆向工程
  • Delphi

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

iOS、Objective-C、Swift、Java、Flutter