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 |