zoukankan      html  css  js  c++  java
  • IOS URL无法对加号进行编码导致http请求时服务器端获取的内容中加号变成空格问题

    一、背景。

    将以下地址请求服务器时,如果postUrl中某个参数值包含符号+  那么在服务器获取到这个参数值时,其加号变成了一个空格。

    NSString *postUrl = "http地址";
    postUrl = [postUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

    二、原因。

    是因为当这个地址进行以上编码时并没有对加号进行处理,正常情况下地址中的加号应该被转码成%2B

    三、解决方法。

    [postUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]已经是IOS过时的方法,应该是存在问题的,所以IOS不建议用。

    应该采用方法:

    postUrl = [postUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"#%<>[\]^`{|}"]+"].invertedSet];

    其中方法[NSCharacterSet characterSetWithCharactersInString:@"#%<>[\]^`{|}"]+"]中的字符串"【#%<>[\]^`{|}"]+】用户可自定义,代表的意思是需要对这些特殊字符进行转码。里面包含了加号,当然就没问题了。

  • 相关阅读:
    hadoop安装前的准备
    记录一次Qt5程序无法运行的解决过程
    C#里的Thread.Join与Control.Invoke死锁情况
    qbxt7月笔记
    zhxのDP讲
    有n*m的方格图
    最长上升子序列相关问题笔记
    qbxt游记(清北澡堂划水记
    DAZの七下道法(持续更新
    模板
  • 原文地址:https://www.cnblogs.com/niit-soft-518/p/8005405.html
Copyright © 2011-2022 走看看