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
���ㅽ��
테스트

 

반응형

'JAVA' 카테고리의 다른 글

엑셀 날짜(date) 형식 컬럼 처리  (0) 2021.11.29
Jwts 에러 발생시 확인 사항  (0) 2021.11.25
OS 환경 변수 가지고 오기  (0) 2021.11.08
stream LinkedList filter cannot be cast  (0) 2021.11.04
Integer to Date java  (0) 2021.11.01
Posted by 질주하는구
,