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