작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
279
·
수정됨
0
안녕하세요~ 선생님 강의 정말 재미있게 듣고 있습니다.
49강 강의를 듣는 중에 restful api json 객체 한글 깨짐 현상이 있습니다. 혹시 chrome 문제였나 싶어 postman 으로도 띄워봤지만 여전합니다.ㅠㅠㅠ 구글 찾아가며 해결해보려고 했지만 잘 해결되지 않습니다.
// http://localhost:8081/myweb/rest
@RequestMapping("/rest" )
public List<String> rest(HttpServletResponse response){
response.setCharacterEncoding("UTF-8");
List<String> list=new ArrayList<>();
list.add("스프링 프레임워크");
list.add("잘 하면");
list.add("된다");
System.out.println("Returning list: " + list);
return list; // rest.jsp <-- 뷰를 만들면 된다.(X) : JSON -> [{ key:value, , ,}.{ },{ }]
}
System.out.println("Returning list: " + list);
이 부분 콘솔에 찍힌 값도
Returning list: [�뒪�봽留� �봽�젅�엫�썙�겕, �옒 �븯硫�, �맂�떎]
이렇게 나옵니다.
수정:
// http://localhost:8081/myweb/rest
@RequestMapping("/rest" )
public List<String> rest(){
List<String> list=new ArrayList<>();
list.add("스프링 프레임워크");
list.add("잘 하면");
list.add("된다");
System.out.println("Returning list: " + list);
System.out.println("안녕");
return list; // rest.jsp <-- 뷰를 만들면 된다.(X) : JSON -> [{ key:value, , ,}.{ },{ }]
}
System.out.println("안녕");
이 부분도 깨져서 나와용. ㅠㅠㅠㅠㅠ
감사합니다~
package com.example.controller;
import com.example.entity.Book;
import com.example.repository.BookMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController
public class SpringRestController {
// http://localhost:8081/myweb/rest
@RequestMapping("/rest")
public List<String> rest(){
List<String> list=new ArrayList<>();
list.add("스프링 프레임워크");
list.add("잘 하면");
list.add("된다");
return list; // rest.jsp <-- 뷰를 만들면 된다.(X) : JSON -> [{ key:value, , ,}.{ },{ }]
}
}
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 멍냥엄마님.
REST API와 JSON 데이터를 다룰 때 한글이 깨지는 문제는 주로 인코딩 설정과 관련이 있습니다. 다음 몇 가지 방법을 통해 문제를 해결할 수 있습니다:
스프링 부트 설정 파일 수정:
application.properties
파일이나 application.yml
파일에서 인코딩 설정을 추가합니다.spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
Controller 클래스에서 응답 인코딩 설정:
produces
속성을 사용하여 인코딩을 명시적으로 설정합니다.@RestController
public class SpringRestController {
@RequestMapping(value = "/rest", produces = "application/json; charset=UTF-8")
public List<String> rest(){
List<String> list = new ArrayList<>();
list.add("스프링 프레임워크");
list.add("잘 하면");
list.add("된다");
return list;
}
}
기존에 유사한 문제를 다룬 답변들을 참고하면 도움이 될 것입니다. 아래 링크들은 관련 질문들에 대한 답변들입니다:
이 답변들에서 설명된 여러 가지 접근 방식을 확인해 보시고, 적용해 보시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.