Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 한글인코딩
- 인터넷중독의 정의에 대한 설명으로 적합하지 않은 것은
- 다음 중 뇌심혈관질환의 원인 중 교정할 수 없는 요인에 속하지 않는 것은
- 접속 브라우저
- Selectbox
- 인터넷중독의 유형 중 정보검색 중독의 증상에 대한 설명으로 옳지 않은 것은
- java
- Browser
- label 효과
- HTML
- checkbox
- 접속ip
- 특수건강진단에 대한 설명으로 잘못된 것은
- 다음은 안전관리에 대한 설명으로 옳지 않은 것은
- 자바
- jsp
- 체크박스
- 산업재해조사의 목적은 재해발생의 원인규명으로 동종 재해를 예방하여 재발을 방지하는데 있다. 다음 중 재해조사의 원칙에 위배되는 내용은
- 간접흡연에 대한 설명으로 옳지 않은 것은
- Ajax
- 금연을 어렵게 만드는 니코틴의 중독에 대한 설명으로 옳은 것은
- 웹
- ip
- spring
- 산업안전보건의 목표가 아닌 것은
- js
- ??
- 다음은 건강진단 판정에 관한 내용이다. 설명하고 있는 내용이 옳지 않은 것은
Archives
- Today
- Total
꼬부기
Ajax return받은 한글 데이터 ??로 나오는 현상 해결 본문
개발 환경 : Window7, Tomcat7, Java8, STS, Spring 3.x
Ajax를 이용해 데이터를 넘기는 작업을 하던 중 아래와 같이 Java 단에서는 한글이 정상적으로 출력 되지만, Web에서 한글이 정상적으로 출력되지 않는 현상이 발생했습니다.
오늘은 인터넷과 이전에 진행한 프로젝트를 뒤져가며 시도한 여러가지 방법들을 소개해볼까 합니다.
1. jsp 페이지 상단에 contentType 및 pageEncoding 추가하기.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
이 코드가 기존 페이지에 있어서 따로 손대지않았지만, 해결 후에 제거하고 진행해보니 ??가 아닌 ë주ì와 같이 아예 다른 문자로 깨져버렸습니다. 페이지의 문자들을 모두 UTF-8로 인식시키겠다고 선언하는 코드이니 꼭 추가해줍시다.
2.Java단, JSONObject를 return 하기 전 response.setCharacterEncoding("UTF-8");로 인코딩 타입 지정해주기
@RequestMapping(value = "/*.json")
@ResponseBody
public String json(@RequestBody HashMap<String, Object> params, HttpServletRequest request, HttpServletResponse response ) throws Exception {
JSONObject jsonObject = new JSONObject();
response.setCharacterEncoding("UTF-8");
return jsonObject.toString();
}
뭐지.. 추가했는데도 아무 변화가 없습니다. 발생하는 원인이 다 다르지만 ②로 해결하신 분 있으면 댓글 좀 남겨주십시오
3. ajax에 contentType 추가하기
$.ajax({
type : "POST"
, url : url
, data : JSON.stringify(jData)
, contentType : "application/json; charset:UTF-8"
, dataType : "JSON"
, async : false
, success : function(data) {
console.log(data);
}, error : function(request, status, error) {
console.log("code:" + request.status + "\n" + "error:" + error + "\n" + "errortext:" + request.responseText );
}
});
4. Controller에 produces, contentType 추가하기
@RequestMapping(value = "/*.json", produces = "application/text; charset=UTF-8")
@ResponseBody
public String json(@RequestBody HashMap<String, Object> params, HttpServletRequest request, HttpServletResponse response ) throws Exception {
JSONObject jsonObject = new JSONObject();
response.setCharacterEncoding("UTF-8");
return jsonObject.toString();
}
ajax에 추가한 contentType과 produces를 동일하게 맞춰주니 한글이 정상적으로 출력되었습니다!
몇번째 겪고, 해결하는 한글 인코딩 이지만 매번매번 새로운 느낌으로 해결하네요
제 글을 끝까지 읽어주셔서 감사합니다.
'코딩' 카테고리의 다른 글
다른 요소에 label for 효과 주기(체크박스 동작) (0) | 2021.04.01 |
---|---|
[JS]제대로 된 배열 정렬하기 (0) | 2018.06.18 |
[jsp,java]접속 ip 및 접속 브라우저 확인하기! (0) | 2018.02.08 |
[js]클릭한 요소가 몇번째 인자인지 index 출력하기! (0) | 2018.02.02 |
[js]셀렉트 박스 선택된 값 출력하기 (0) | 2018.01.23 |
Comments