Posts 한글 들어간 url string을 인코딩하는 방법
Post
Cancel

한글 들어간 url string을 인코딩하는 방법

문자열(이후 string)을 URL로 변환하여 사용하는 경우가 있는데, string 값에 한글 혹은 공백 같은 값이 들어갈 경우 nil 값이 반환된다. 퍼센트 인코딩(percent-encoding)을 해야 올바른 url로 변환할 수 있는데, 스위프트 string에서 addingPercentEncoding(withAllowedCharacters:) 을 사용하면 된다. 파라미터로 .urlQueryAllowed을 넣는데, 사용하려는 URL 형식에 맞게 CharacterSet에 있는 값들 중에 사용하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
import Foundation

let urlString = "https://www.google.com/search?q=애플 스위프트"
if let encodedString = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
    print(encodedString)
    // Prints "https://www.google.com/search?q=%EC%95%A0%ED%94%8C%20%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8"
}

if let encodedURL = URL(string: encodedString) {
    print(encodedURL)
    // Prints "https://www.google.com/search?q=%EC%95%A0%ED%94%8C%20%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8"
}

🚧 주의

여기서 주의할 점은 이미 퍼센트 인코딩되어 있는 string에 사용하면 안 된다. 사용하게 된다면 퍼센트 인코딩되어 있는 string에 있는 퍼센트 문자가 또 퍼센트 인코딩하는 것을 발생할 수 있다.


참고

Apple Developer Documentation

This post is licensed under CC BY 4.0 by the author.