แก้ปัญหา UIWebView ไม่ทำงานกับ URL ภาษาไทยด้วย Encoding URL NSString บน iOS
การทำงานกับ UIWebView เมื่อ url มีภาษาอื่นร่วมด้วย UIWebView จะไม่ทำงาน ทางแก้คือ Encode ด้วย UTF8
ที่ไฟล์ NSString+URLEncoding.h
#import
@interface NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding;
@end
ที่ไฟล์ NSString+URLEncoding.m
#import "NSString+URLEncoding.h"
@implementation NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'"();:@&=+$,/?%#[]% ",
CFStringConvertNSStringEncodingToEncoding(encoding));
}
@end
การนำไปใช้
NSString *raw = @"hell & brimstone + earthly/delight";
NSString *url = [NSString stringWithFormat:@"http://example.com/example?param=%@",
[raw urlEncodeUsingEncoding:NSUTF8Encoding]];
NSLog(url);
ที่มา: http://madebymany.com/blog/url-encoding-an-nsstring-on-ios