반응형
iOS WebView, EUC-KR POST파라미터 처리 방법
NICE 인증할 때 인증 마지막에 NICE쪽에서 WebView의 Return URL로 POST파라미터를 보낸다. 이때 이 인코딩이 EUC-KR형태인데 해당 값을 받아서
다시 암호화를 통해 NICE로 보내면 키가 잘못되었다는 오류를 내뱉는다.
웹뷰에서 POST 파라미터를 받을 때 다음과 같이 처리하면 된다.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
// URL Decode (Web POST 파라미터를 받아서 이스케이프 된 문자열을 디코딩할 때 EUC-KR 인코딩 형식으로 해야 한다.)
NSString *decoded = [body stringByReplacingPercentEscapesUsingEncoding:(0x80000000 + kCFStringEncodingDOSKorean)];
NSLog(@"decoded string :\n%@", decoded);
}
이것 때문에 EUC-KR 변환 함수까지 찾아보고 했지만 해결이 되지 않았다. 몇 시간 고생했지만 그래도 번뜩하고 떠오른 생각이 있어 혹시나 하고 적용했더니 아니나 다를까 iOS처음 공부할 때나 썼던 저런 코드가 아직도 쓰일줄이야..
UTF-8은 왜 안쓰는 거지?
반응형