JAVA

Base64 한글 인코딩(한글깨짐)

질주하는구 2021. 11. 22. 11:08

Base64로 데이터를 주고 받아 한글이 깨지는 경우가 있어 관련한 내용을 정리 합니다.

 


String temp				= "테스트";
byte[] tempBytes		= temp.getBytes("UTF-8"); //getBytes시 인코딩 지정

//인코딩
Encoder encoder			= Base64.getEncoder();

byte[] encodByte		= encoder.encode(tempBytes);
System.out.println(new String(encodByte));

String encodString		= encoder.encodeToString(tempBytes);
System.out.println(encodString);

//디코딩
Decoder decoder			= Base64.getDecoder();

byte[] decodByte1		= decoder.decode(encodByte);
byte[] decodByte2		= decoder.decode(encodString);

String decodString		= new String(decodByte1, "EUC-KR");//String 생성시 인코딩 지정
System.out.println(decodString);

System.out.println(new String(decodByte2, "UTF-8"));//String 생성시 인코딩 지정

인코딩 디코딩 작업 시 charsetName이 다른 경우 아래와 같은 실행 결과가 출력 됩니다.

7YWM7Iqk7Yq4
7YWM7Iqk7Yq4
���ㅽ��
테스트

 

반응형