BackEnd/Java

[Java] 파일 업로드 구현시 한글깨짐 현상 / 인코딩 하기

모야이거였어 2022. 4. 8. 14:41

A. 한글깨짐 인코딩

1. front

form 에서 아래와 같이 multipart값으로 받아오고

<form name="form" method="post" action="manageUccImageAd.sys" enctype="multipart/form-data">
  <td> <input type="text" name="name"> </td>
  <td> <input type="file" name="file"> </td>

....

 

2. java

인코딩이 필요한 파일을 아래 코드를 써서 인코딩해줌

String name = multipartRequest.getParameter("name");

name = new String(name.getBytes("8859_1"),"utf-8);

 

 

 

B. Java 인코딩 확인하기

new String(문자열.getBytes("charSet"), "charSet");

 

1. 문자열을 getBytes("charSet") 메소드

- String을 해당 charSet으로 인코딩

2. String 객체를 인코딩 방식을 추가하여 생성

- 인코딩된 문자를 Java String 객체(유니코드) 변환

=> 만약 깨지는 글자가 발생하는 경우 해당 인코딩이 특정 문자를 지원하지 못하기 때문

- 예를 들어 완성형인 euc-kr이 '놟쐛씗쀍' 과 같은 문자를 지원하지 못하기 때문에 문자에 대한 손실이 일어나게 됨

String originalStr = "테스트";
byte[] bytes = originalStr.getBytes("utf-8");
originalStr = new String(bytes);

String[] charSet = {"utf-8", "euc-kr", "ksc5601", "iso-8859-1", "x-windows-949"};
for(int i = 0; i<charSet.length; i++){
	for(int j = 0; j<charSet.length; j++){
		try{ 
			System.out.println("[" + charSet[i] + "," + charSet[j] + "]" 
            	+ new String(originalStr.getBytes(charSet[i]), charSet[j]));
		} catch (UnsupportedEncodingException e){
			e.printStackTrace();
		}
	}
}

출처1: https://entro80.tistory.com/17

 

[Java] 파일 업로드 구현시 한글깨짐 현상

파일 업로드 구현시 보통 form 을 multipart 를 사용하여 쉽게 구현한다. 문제는 multipart form에 있는 한글 값들이 로직으로 전달할때 깨진다는것이다. * jsp에서 form 설정   .... * 로직 구현 public BaseM..

entro80.tistory.com

출처2: https://mkil.tistory.com/273

 

[Spring] 스프링 파일업로드/ file upload/ 파일업로드 한글깨짐

기본적인 Controller와 jsp 경로 호출 등 셋팅은 되어있다는 가정하에 시작한다. (필자는 STS를 사용 > http://mkil.tistory.com/267 (4)테스트환경 참조~) 1. fileTest.jsp 생성 JSP를 다음과 같이 생성하고 FOR..

mkil.tistory.com

위 블로그에 자세하게 설명되어있음!

 

출처3: https://blog.naver.com/PostView.naver?blogId=hj_kim97&logNo=222420921870&redirect=Dlog&widgetTypeCall=true&directAccess=false

 

[Java]Java 인코딩 확인하기

한글이 깨지는 경우 인코딩 확인하기 new String(문자열.getBytes("charSet"), "charSe...

blog.naver.com

 


 

​인코딩에 대한 기본적인 지식을 담고있는 글 (읽고 공부해야 함)

https://sthyun.tistory.com/181

 

자바에서 인코딩(encoding)

우리 회사의 솔루션은 UTF-8 기준으로 만들어졌기 때문에 대부분의 웹사이트에서 사용중인 EUC-KR로 인코딩된 스트링을 UTF-8로 변환할 필요가 있다. 아래 코드를 사용하면 자바 소스 내에서 바로

sthyun.tistory.com