您的位置:首页 > 其它

GBK编码,解码。以及,有关url中文转码!

2016-07-04 13:22 218 查看
1.在去年的时候遇到过一个需求就是说,服务器那边接收用户名密码时必须是base64形式的传递,所以没办法,就只能去找这方面的资料,找来找去倒是也找到了一个比较好的处理方式来处理,,纯代码码上:

编码--->以base64形势编码, 

 NSString *username = [[NSUserDefaults
standardUserDefaults] objectForKey:@"username"];

    NSString *password = [[NSUserDefaults
standardUserDefaults] objectForKey:@"password"];

    //编码的过程

    NSData *passwordData = [password
dataUsingEncoding:NSASCIIStringEncoding];

    NSString *encodeResult = [passwordData
base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

    NSString *urlStr = [NSString
stringWithFormat:@"%@/GetGgbFile.aspx?username=%@&epassword=%@&filename=%@",URL_ServerHost,[Ecoding
ecodingWithString:username],[Ecoding
ecodingWithString:encodeResult],[Ecoding
ecodingWithString:self.documentId]];

    NSLog(@"%@",urlStr);

    [MBProgressHUD
showHUDAddedTo:self.view
animated:true];

    [self.webView
loadRequest:[NSURLRequest
requestWithURL:[NSURL
URLWithString:urlStr]]];

解码--->base64解码的过程

  NSData* decodeData = [[NSData alloc] initWithBase64EncodedString:encodeResult options:0];

  NSString* decodeStr = [[NSString alloc] initWithData:decodeData encoding:NSASCIIStringEncoding];

UTF8-->GBK

+(NSString *)ecodingWithString:(NSString *)str{

    NSStringEncoding gbkEncoding =
CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

    return [str
stringByAddingPercentEscapesUsingEncoding:gbkEncoding];

}
上述在编码转换url时,将utf8转为GBK形式,这是一个封装的方法,直接调这个方法即可。传一个字符串,出来一个转换后的。

2.如果请求的url包涵中文,怎么办?那么这时候就需要去给他转换成utf8形式的了。

NSString *username = [textField1.text
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
直接这一句话就行了。是不是很简单呢?
好了,搞定!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息