* 인코딩

네트워크를 통해 정보를 공유할 시, 어떤 시스템에서도 읽을 수 있도록 ASCII 문자로 바꿔주는 것이다.

모든 네트워크를 통한 전송에는 ASCII 문자를 기반으로 하고 있는데, 특히 한글이나 특수문자의 경우 2진수 바이트 코드로 변환해서 전송하면 반는 상대방의 시스템에 따라 해석이 불가한 경우가 많아지기 때문에, 인코딩이 필요하다.

 

 

1. escape()

특정 아스키 문자를 제외하고 전부 유니코드로 변환

encodeURI() 와 Component 의 중간 정도의 범위로 인코딩

16진수 형식으로 표시 (ex. 1바이트 : %XX / 2바이트 : %uXXX)

 

 

2. encodeURI()

인터넷 주소 표시에 쓰이는 특수문자들은 인코딩 하지 않음 (ex. : ; / = ? & 등은 인코딩 하지 않는다)

보통 파라미터를 전달하는 URI 전체를 인코딩시 사용

 

 

3. encodeURIComponent()

인터넷 주소 표시에 쓰이는 모든 문자를 인코딩

파라미터 하나하나 따로따로 인코딩시 많이 사용함

(한꺼번에 넘기는 경우, 파라미터 값 연결시 쓰이는 '&' 등도 인코딩 되어 버리니까)

http:// ... 가 http%3A%2F%2F로 인코딩됨

 

 

* java.net.URLEncoder.encode는 encoderURIComponent() 와 비슷하지만, encoderURIComponent() 가 인코딩 하지 않는 ! ( ) 3개도 인코딩 한다.

 

* 자바스크립트에서 지원하는 인코딩은 모두 utf-8 (Ajax도 utf-8)

* 자바스크립트에서 파라미터를 Controller 단으로 보내는 경우, 받는 Controller 단에서도 UTF-8 인코딩 처리를 해줘야 한다. [ ex. request.setCharacterEncoding("UTF-8"); ]

 

+ Recent posts