# Untitled

Swift - queryString에 한글 퍼센트 인코딩하기

특정 외부 API를 통해 데이터를 한글 키워드로 검색할 경우 쿼리스트링에 키워드 자체가 %가 들어간 이상한 형태로 깨지는 경우를 본 적 있을 것이다. 이런 인코딩 방식을 [Percent-Encoding](https://developer.mozilla.org/ko/docs/Glossary/Percent-encoding) 이라고 한다. 

URL을 기반으로 네트워크 통신을 하기 위한 또 하나의 규약이라고 볼 수 있다. 미리 정해진 인코딩 방식에 따라 한글도 %가 들어간 특이한 16진수 값으로 맵핑된다.

iOS 앱을 만들어 가면서 분명 한글로 검색하여 외부 데이터를 패칭해와야 하는 경우가 많았다. 그럴 때 queryString에 퍼센트 인코딩을 적용하는 방법을 간단히 기록으로 남긴다.

```javascript
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 통신을 하는 코드에 넣어준다. 

끗! 아주 간단하다.

For the site tree, see the [root Markdown](https://slashpage.com/hankyeol.md).
