当前位置: 首页 > news >正文

站长推广网做钓鱼网站犯法吗

站长推广网,做钓鱼网站犯法吗,可以做软件的软件,简单制作html静态网页原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理 如下: guard let allowUrl webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时&a…

原因分析:

url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理 

如下:

   guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return}

后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问。

这表名.urlQueryAllowed并没有包含字符"#"。

也有提供API可以测试:

.urlQueryAllowed.contains("#")

解决方案:

显而易见,只要将字符"#"加到.urlQueryAllowed即可解决这个问题。

CharacterSet提供了三个方法:

取并集
/// Returns a union of the `CharacterSet` with another `CharacterSet`.
public func union(_ other: CharacterSet) -> CharacterSet取交集
/// Returns an intersection of the `CharacterSet` with another `CharacterSet`.
public func intersection(_ other: CharacterSet) -> CharacterSet取补集
/// Returns a `CharacterSet` created by removing elements in `other` from `self`.
public func subtracting(_ other: CharacterSet) -> CharacterSet

为CharacterSet增加一个新属性

extension CharacterSet {static let allowedCharacters = urlQueryAllowed.union(.init(charactersIn: "#"))
}

上面的url编码方法改为

   guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .allowedCharacters) else {return}

在编码过程中不对字符#操作即可解决。

寻根究底

.urlQueryAllowed中到底包含哪些字符?

以下是遍历NSCharacterSet字符集一种的实现方式。(摘自:URL详解以及iOS中URLencode和URLdecode)

NSString* characters(NSCharacterSet *set){NSMutableString *string = [NSMutableString string];for (UInt8 plane = 0; plane < 17; plane++) {if ([set hasMemberInPlane:plane]){UInt32 p0 = (UInt32)plane * 65535;UInt32 p1 = (UInt32)(plane + 1) * 65535;for (UInt32 i = p0; i < p1; i ++) {if([set longCharacterIsMember:i]){[string appendFormat:@"%c",I];}}}}return string;}

原理:OC中的字符是Unicode字符集(Swift也是)Unicode共有17个扇区,每个扇区能表示65535个Unicode字符,用4个字节就可以表示任意Unicode码点,通过遍历Unicode字符集就可以找出NSCharacterSet包含的集合了;
hasMemberInPlane:判断当前字符是否在当前扇区。
longCharacterIsMember:当前字符在字符集中是否存在。

NSCharacterSet提供了标准字符集:部分字符集遍历结果如下:
URLUserAllowedCharacterSet

!$&'()*+,-.0123456789;=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~

URLHostAllowedCharacterSet

!$&'()*+,-.0123456789:;=ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_abcdefghijklmnopqrstuvwxyz~

URLPathAllowedCharacterSet

!$&'()*+,-./0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~

URLQueryAllowedCharacterSet

!$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~

URLPasswordAllowedCharacterSet

!$&'()*+,-.0123456789;=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~

URLFragmentAllowedCharacterSet

!$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~

http://www.yayakq.cn/news/307894/

相关文章:

  • 台山网站设计织梦cms网站迁移
  • 做外贸网站一定要会英语吗商贸有限公司网站案例
  • 做网站需要买主机那深圳网站制作要多少钱
  • 杭州专业建设网站哪里好seo推广原理
  • 棋盘游戏类网站开发产品定制网站
  • 湘潭建设公司网站给wordpress替换主题
  • 网站设计分析案例个人住房公积金贷款
  • 宜昌 房地产网站建设查询域名后缀网站
  • 门户网站建设流程建设主管部门官方网站
  • 网站备案 信息查询买毕业设计的网站
  • 南京网站推广价格一键生成房屋设计图
  • 做外贸有免费的网站吗单位 内网网站建设
  • 做门户网站多少钱网站功能定位分析
  • 网站还没有做解析是什么意思周口建设网站
  • 建站推广免费公司安卓优化大师官方版
  • 免费电子商务网站建设抖音上做我女朋友网站
  • 找人做网站毕业设计胶东国际机场建设有限公司网站
  • 北京正邦网站建设东莞网站建设基础
  • 什么公司需要建立网站专业企业网站制作怎么做
  • 做网站的平台在线网站模板
  • 东莞网站优化制作二级分销最佳佣金比例
  • 固安县建设局网站湖南做网站 f磐石网络
  • 视频网站的服务器建设织梦cms做网站怎么样
  • 网站设计有限公司长沙企业网站排名
  • 百度指数的网站网站备案名称更换
  • 跨境电商 网站开发济南百度提升优化
  • 上海网站建设 浦东深圳品牌学校网站建设
  • 东莞专业网站建设推广百度 验证网站
  • 刘娇娇做网站骗钱的不用付费不用登录的网站
  • 如何快速模仿一个网站WordPress 古腾堡开发