Sign In
한결
Status
Empty
Assignee
Empty
Swift - queryString에 한글 퍼센트 인코딩하기
특정 외부 API를 통해 데이터를 한글 키워드로 검색할 경우 쿼리스트링에 키워드 자체가 %가 들어간 이상한 형태로 깨지는 경우를 본 적 있을 것이다. 이런 인코딩 방식을 Percent-Encoding 이라고 한다.
URL을 기반으로 네트워크 통신을 하기 위한 또 하나의 규약이라고 볼 수 있다. 미리 정해진 인코딩 방식에 따라 한글도 %가 들어간 특이한 16진수 값으로 맵핑된다.
iOS 앱을 만들어 가면서 분명 한글로 검색하여 외부 데이터를 패칭해와야 하는 경우가 많았다. 그럴 때 queryString에 퍼센트 인코딩을 적용하는 방법을 간단히 기록으로 남긴다.
guard let text = self.mainView.header.searchBar.text else { return } guard let formattingQuery = text.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else { return } // 커스텀 API Network Service APIService.manager.fetch(.searching(query: formattingQuery)) { (data: MovieResult) in successLogic(data) } errorHandler: { error in errorLogic(error) }
텍스트 필드로 받아온 String 값이 nil인지 확인한다.
String 값이 있다면 .addingPercentEncoding 메서드로 한 번 인코딩 해주고 API 통신을 하는 코드에 넣어준다.
끗! 아주 간단하다.
👍