본문 바로가기
Debugging&Solution/Solution

[Solution] 안드로이드에서 서버로 데이터 보낼 때 한글 깨짐

by 코딩의성지 2019. 10. 22.

요즘 안드로이드 개발을 계속하고 있다. 그런데 익숙하지 않다 보니.... 계속 여기 저기서 에러를 마주친다. 프로젝트를 하면서 서버와의 통신이 필요해 서버를 구축하고 데이터를 전송하는 모듈을 작성했다.

 

 

통신방식은 Post 방식이고 json 형태의 데이터를 보냈다.

 

그런데 ... 데이터를 보내고 DB에 insert를 했는데 ... 한글이 깨져버리는 문제를 겪게되었다.

 

아 이것때문에 진짜 환장할 뻔했다. 꽤 오랜 시간을 투자해서 해결을 했다.

 

이 문제를 해결하는 다양한 방법이 검색되지만, 나는 내가 해결했던 방법을 소개하고자 한다.

 

먼저 어떤 문제가 발생했는지 자세히 살펴보자.

 

???... 한글이 깨져서 입력이 된다. 원래 name 이 있는 곳에는 내가 입력한 한글 이름이 나와야하는데... ??? 가 나와서 당황 스러웠다. 뭔가 퀴즈를 내고 있는 것 같기도 하고... 아무튼 이렇게 둬서는 안되니 해결을 함께 해보자.

 

문제 해결을 위해 구글에 검색을 해보았다. 

클라이언트와 서버간에 통신을 할때 UTF-8로 인코딩이 되어 있지 않으면 이렇게 한글이 깨져버릴 수 있다는 내용이 많았다.

 

 

 

먼저, 서버에서 UTF-8 관련 설정이 잘 못 되어서 이런 문제가 발생하는지 확인해 보았다.

위와 같은 방식으로 Postman을 통해 json을 날려 보았다. 아 만약 개발자시거나 개발자를 꿈꾸시는 분들 중에서 Postman이 뭔지 모르거나 사용해 본 적이 없다면, 꼭 익혀두자.. !! 다음에 시간이 나면 사용법을 정리해보겠다 ^^

 

잘 된다. 흠 ..  왜 안드로이드에서 보낼 때만 한글이 깨질까 ..? 구글링을 통해서 문제를 찾아봤다. 

 

먼저 HttpPost 객체에서 setEntitiy 메서드를 쓸때 UTF-8 방식으로 설정을 하는 방식을 적용해보았다.

1
2
3
4
5
6
//기존
//httpPost.setEntity(new StringEntity(requestJson));
 
//변경
httpPost.setEntity(new StringEntity(requestJson, HTTP.UTF_8));
 
 

기존에 앱을 통해 insert했던 데이터는 지우고, 다시 앱을 통해 insert 해봤다.

하하하하하하하하하하!!!!! 아주 잘 된다.

 

역시 검색은 구글인가 보다.

 

매번 새벽에 글을 적다보니, 계속 정신 없이 글을 적게 되는 것 같다. 이 점 감안해주시고 읽어주면 감사하겠다.

 

아무튼 오늘도 즐겁게 코딩하자~~! 안녕~~~

 

 

반응형

댓글