온라인 url encoder, decoder ( euc-kr ) / JAVA에서 구현방법

euc-kr

다양한 회사와 협업을 하다보면 그만큼 다양한 요구사항이 있다.
http기반의 api호출이 아닌, socket통신을 하는 회사도 많이있다.

필자가 맡은 서비스의 대부분의 통신이 utf-8로 이루어지고 있다.
euc-kr기반의 url encoding을 요청받아 방법에 대해 메모한다.

online encoder / decoder

필자는 api를 제공받으면 바로 구현에 들어가기보다는 한번씩 호출을 해본다.
그리고 호출결과를 명세서와 비교해본다.

url encoding이 되어있는경우 아래 사이트를 활용한다.
아래 페이지는 char-set을 지정할수 없고 utf-8로 고정되어있다
https://meyerweb.com/eric/tools/dencoder/

euc-kr을 char-set으로 선택하여 url encoding/decoding을 하고싶은 경우는 아래 페이지를 활용한다.
https://www.webatic.com/url-convertor

https://www.webatic.com/url-convertor

JAVA 구현

예시는 연동후 decode 하는 방법이다.

java환경에서 구현시에는 java.net.URLDecoder 를 사용하였다

연동시마다 호출되기때문에 char-set을 static으로 선언해주었다.
연동결과를 받아보는 application입장에서는 encoding된 방법을 알필요가없다.
getter를통해 캡슐화하였다.

이방법은 checked exception인 UnsupportedEncodingException 를 발생시키기때문에 반드시 handling 해야한다. (단점)
기본값을 정하여 리턴하거나, 처리할수 없다면 다시 예외를 던지는 방법도 있을것이다.
서비스의 성격마다 다르니 정답은 없다.

1
2
3
4
5
6
7
8
9
10
11
12
private static final String CHAR_SET = "euc-kr";

@Override
public String getProductName() {
try {
return URLDecoder.decode(this.productName, CHAR_SET);
} catch (UnsupportedEncodingException e) {
//return null;
//return Strings.EMPTY;
//throw new CannotDecodeException();
}
}

Comments