Go에서 URL용 문자열에 한글 있을때 인코딩 하는 방법


open API로 정보 받아오는걸 작성하는데 웹브라우저에선 정상 작동하는데 코드로 붙여 넣기만 하면 에러가 나서 삽질하다 보니 파라미터로 한글이 하나 들어 간 것이 있어서 그 부분이 인코딩 되지 않아서 발생한 에러… (api 에러 메세지도 엉뚱한 에러로 표기해서 삽질했네)

URL := "https://linsoo.pe.kr/tag/맥미니?test=aaa&key=키는비밀&aa=가나다"
re := regexp.MustCompile(`[^\x00-\x7F]+`)

tmpStr := URL
for i, match := range re.FindAllString(URL, -1) {
    fmt.Println(match, "found at index", i)
    tmpStr = strings.Replace(tmpStr, match, url.QueryEscape(match), -1)
}

fmt.Println(URL)
fmt.Println(tmpStr)

정규식으로 ascii 가 아닌부분은 전부 뽑아서 인코드를 해줌.

끝!

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다