티스토리 뷰



 0x0422


웹서버가 보낼때 euc-kr로 보내는데


ios에서 NSString으로 못받아온다.


NSString(data:data, encoding: NSUtf8StringEncoding)


이거로가져오면 디코딩이 안된다.


그래서 삽질하기를 수시간.


Reference를 보니 NSStringEncoding은 기존 CFString Encoding type으로 대체가 가능하다고 한다.


CFStringConvertEncodingToNSStringEncoding()이란 함수를 찾았다.



SWIFT

func CFStringConvertEncodingToNSStringEncoding( _ encoding: CFStringEncoding) -> UInt



https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStringRef/#//apple_ref/c/tdef/CFStringEncoding

여기서 대충 CFString에서 기본으로 지원하던 인코딩들을 볼수있고


https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStringRef/#//apple_ref/doc/constant_group/External_String_Encodings

여기서 External 인코딩들을 볼수있다.



코리안은 총 두개가 보이는데

kCFStringEncodingMacKorean = 3,

kCFStringEncodingDOSKorean = 0x0422,


요래 두개가 보인다.


위에거는 3을 써도 안되길래 아래 0x0422를 넣으니 성공



이렇게쓰면 된다.

let responseString = NSString(data: data, encoding:
CFStringConvertEncodingToNSStringEncoding( 0x0422 ) )

println(" Response Data is = \(responseString)")


우왕 퇴근

댓글
댓글쓰기 폼