URL的编码处理

本文主要探讨移动开发中,URL因包含特殊字符或汉字导致在App中无法正常加载的问题。作者总结了当前一流的方法,包括对含有汉字的URL的编码处理,提供了两种可行的编码方式,并提醒在使用时需进行测试。同时,提供了相关的demo获取途径。
摘要由CSDN通过智能技术生成

1、在移动开发中,我们会遇到一个网址在浏览器上可以加载,但是在App上就不可以加载的情况或则网址解析不出来等。这类情况大多是由于网址含有特俗的字符,包括汉字而造成的。这种原因的处理也有很多方法,网上到处都是。但是,随着App等系统的升级和更新,支持的编程语言的更替,有的方法就有所不足。今天,我对此总结了一下,不敢说以后能用,但是目前绝对是一流的。

2、我们首先举出一个URL。如下:

@"https://www.goufree.com/wap/tmpl/product_list.html?keyword=电脑&type=黄花"
上面这个网址。我们也没有看出它有什么不妥,对,将它放入浏览器中它可以顺利加载,但是,在App中它就不可以加载。为什么会出现这种情况??,这又怎么解决??

3、对上述的问题的处理。

第一:含有汉字的网址。

#pragma mark 汉字转码处理
-(NSString*)encodeCharactersString:(NSString*)inputString{
    //** 获取系统号
    NSInteger versonValue = [UIDevice currentDevice].systemVersion.floatValue;
    if (versonValue<7.0) {
        //** 进行编码
        inputString = [inputString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    }else{
        //** 我们进行汉字处理
        NSMutableString * outString = [NSMutableString stringWithCapacity:0];
        for (unsigned int i=0; i<inputString.length; i++) {
            int utfCode = 0;
            void * buffer = &utfCode;
            NSRange range = NSMakeRange(i, 1);
            BOOL encode = [inputString getBytes:buffer maxLength:10 usedLength:NULL encoding:NSUTF16LittleEndianStringEncoding options:NSStringEncodingConversionExternalRepresentation range:range r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值