Đôi khi gửi một chuỗi đc encode lên server bằng phương thức post, một số dấu ko đc hiển thị đúng
send: 2013-06-29T18:33:17+0000
receive: 2013-06-29T18:33:17 0000. //+ ---> " "
hoặc encode một chuỗi url ra kết quả không đúng. (&/+/khoảng trắng...)
Ta khắc phục điều này bằng hàm sau CFURLCreateStringByAddingPercentEscapes
#import "NSString+URLEncoding.h"
@implementation NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
CFStringConvertNSStringEncodingToEncoding(encoding));
}
@end
Reference:
http://kiririmode.hatenablog.jp/entry/20110730/p1
http://stackoverflow.com/questions/17444876/ios-not-encoding-plus-sign-in-x-www-form-urlencoded-post-request
No comments:
Post a Comment