일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 경기도 버스정보시스템
- 공공 데이터 포털
- NUnit
- C# MDB
- TDD
- delegate
- sqlite3
- 버스 API
- MDB Connect
- 디자인 패턴
- WPF
- Excel Cell Format
- DrawRectangle
- MVC
- MDB Select
- Json.NET
- 시
- C# MDB Handle
- Winform
- C# 파일 암/복호화
- solid
- eventargs
- Cell Border Style
- eventhandler
- 객체지향
- c#
- DrawEllipse
- GDI+
- JSON
- 경기도 버스
- Today
- Total
White Whale Studio
[Java] String to UTF-8 변환 Encoding 본문
오늘은 java 에서의 UTF-8 변환 방법을 살펴볼겁니다.
맨날 C#.Net에서 놀다가 자바를 만지려니 영 불편한 것이 한두가지가 아니군요.
아무튼 시작합니다.
보통 UTF-8로 변환하는 경우라고 하면 웹 사이트에서 검색이나 API를 사용할 때가 많겠죠.
.Net에서도 마찬가지이긴 합니다만... java는 그리 쓸일이 없어 사실 조금 헤맸습니다.
이번에 제가 할 포스팅은 한글 String을 변환하여 최종적으로 웹에서 검색이 가능한 UTF-8 문자열로 변환시키는 것이 목적입니다.
우선 String에서 UTF-8 코드로 변환하는 방법입니다.
String teststr = "배열 테스트";
byte[] b; // 우선 바이트 배열을 선언하고
b = teststr.getBytes("UTF-8"); // teststr로 부터 UTF-8 형식으로 바이트를 가져옵니다.
이렇게 가져온 b 배열을 하나씩 찍어보면 다음과 같습니다.
-21-80-80-20-105-7632-19-123-116-20-118-92-19-118-72
보통 웹에서는
%EC%84 등등 이와 같은 형식과 같이 16진수 형태로 표현한 것을 종종 보셨을 겁니다.
저희도 이와같이 바꿔볼겁니다.
우선 b 배열에서 각 항목별로 가져와서 16진수로 바꿔보면
for (int i = 0; i < b.length; i++) {
System.out.print(Integer.toHexString(b[i]));
}
ffffffebffffffb0ffffffb0ffffffecffffff97ffffffb420ffffffedffffff85ffffff8cffffffecffffff8affffffa4ffffffedffffff8affffffb8
과 같이 출력됩니다.
중간에 있는 20은 스페이스 바 즉, 공백 문자라고 보시면 되구요. 저희가 필요한 것은 ffffff를 제외한 부분이므로 replace나 substring을 사용해서 ffffff를 %로 바꿔줍시다.
저는 SubString을 사용했습니다.
for (int i = 0; i < b.length; i++) {
if(Integer.toHexString(b[i]).length() > 3){
System.out.print("%" + Integer.toHexString(b[i]).substring(6, 8));
} else{
System.out.print("%" + Integer.toHexString(b[i]));
}
}
위와 같은 코드를 사용해서 돌려보면 최종적으로
%eb%b0%b0%ec%97%b4%20%ed%85%8c%ec%8a%a4%ed%8a%b8
와 같이 원하는 코드가 나오게 됩니다. 끝~~!
'IT Engineering > Android 혹은 Java' 카테고리의 다른 글
[Android] SDK Tools 22.6.2 버전 업데이트 이후 (0) | 2014.05.08 |
---|---|
[Android] google play service lib Import 하기~! (2) | 2014.04.28 |
[Android] 소소하지만 필요한 소스.. (0) | 2014.02.24 |
윈도우서버에서 apk 업데이트 방법 (0) | 2014.02.12 |
[Android & Java] 자질구레한 오류들 (0) | 2014.01.21 |