인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

PZM기반 실무중심 백엔드 부트캠프(프리트레이닝)

rest api json 객체 한글 깨짐 현상

해결된 질문

작성

·

180

·

수정됨

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 데이터를 다룰 때 한글이 깨지는 문제는 주로 인코딩 설정과 관련이 있습니다. 다음 몇 가지 방법을 통해 문제를 해결할 수 있습니다:

  1. 스프링 부트 설정 파일 수정:

    • application.properties 파일이나 application.yml 파일에서 인코딩 설정을 추가합니다.
    spring.http.encoding.charset=UTF-8
    spring.http.encoding.enabled=true
    spring.http.encoding.force=true
    
  2. 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;
       }
    }
    

기존에 유사한 문제를 다룬 답변들을 참고하면 도움이 될 것입니다. 아래 링크들은 관련 질문들에 대한 답변들입니다:

이 답변들에서 설명된 여러 가지 접근 방식을 확인해 보시고, 적용해 보시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기