แก้ปัญหา UIWebView ไม่ทำงานกับ URL ภาษาไทยด้วย Encoding URL NSString บน iOS

IOS 16 ธ.ค. 2013

การทำงานกับ 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

แท็ก

Onyx

Just a middle-aged programmer, Can do many things but not the most.