servlet/jsp 웹페이지 한글깨지는이유와 해결

웹서버 -(ISO-8859-1)-->브라우저

한글로된 아무 설정없이 문서를 브라우저로 뛰우면 유럽에서 사용하는ISO-8859-1 방식으로 1바이트씩

브라우저로 전송하기때문에 브라우저에서는 한글이 깨진다.

etc-image-0
(아무설정없이 한글문서를 브라우저로 보냈을때)

 

etc-image-1
전송하는 인코딩만UTF-8로설정했을 때

 

etc-image-2
보낼때와 브라우저가 받는 인코딩을UTF-8로 설정해야 한글이 구현된다.

따라서 한글화된 문서를 브라우저에서 구현하려면 아래와같이

response.setCharacterEncoding("UTF-8"); //보낼때의인코딩방식
response.setContentType("text/html; charset=UTF-8");  //브라우저가 문서를 받을때의 인코딩방식

을 이용해서 보낼때의 인코딩과 브라우저가 받을때의 인코딩 방식을 설정해주어 한글을 구현해야한다.

package com.first.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/kkk")
public class nana extends HttpServlet {
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//브라우저의 처리방식과 문서를 보낼대의 인코딩방식 설정으로 한글구현
		response.setCharacterEncoding("UTF-8");//보낼때의 인코딩 방식
		response.setContentType("text/html; charset=UTF-8"); //브라우저에게 UTF8방식으로 인코딩해라
		PrintWriter out =response.getWriter();
		for(int i=0; i<100; i++)
			out.println((i+1)+": 바나나!!<br>");
		
	}
}

 

'Programing > jsp' 카테고리의 다른 글

JSP) Mapping 맵핑 이란?  (0) 2022.01.19