Base64로 데이터를 주고 받아 한글이 깨지는 경우가 있어 관련한 내용을 정리 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <code class = "hljs csharp" > String temp = <span class = "hljs-string" > "테스트" </span>; <span class = "hljs-built_in" > byte </span>[] tempBytes = temp.getBytes(<span class = "hljs-string" > "UTF-8" </span>); <span class = "hljs-comment" > //getBytes시 인코딩 지정</span> <span class = "hljs-comment" > //인코딩</span> Encoder encoder = Base64.getEncoder(); <span class = "hljs-built_in" > byte </span>[] encodByte = encoder.encode(tempBytes); System.<span class = "hljs-keyword" >out</span>.println(<span class = "hljs-keyword" > new </span> String(encodByte)); String encodString = encoder.encodeToString(tempBytes); System.<span class = "hljs-keyword" >out</span>.println(encodString); <span class = "hljs-comment" > //디코딩</span> Decoder decoder = Base64.getDecoder(); <span class = "hljs-built_in" > byte </span>[] decodByte1 = decoder.decode(encodByte); <span class = "hljs-built_in" > byte </span>[] decodByte2 = decoder.decode(encodString); String decodString = <span class = "hljs-keyword" > new </span> String(decodByte1, <span class = "hljs-string" > "EUC-KR" </span>);<span class = "hljs-comment" > //String 생성시 인코딩 지정</span> System.<span class = "hljs-keyword" >out</span>.println(decodString); System.<span class = "hljs-keyword" >out</span>.println(<span class = "hljs-keyword" > new </span> String(decodByte2, <span class = "hljs-string" > "UTF-8" </span>));<span class = "hljs-comment" > //String 생성시 인코딩 지정</span> </code> |
인코딩 디코딩 작업 시 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 |