안드로이드 개발 질문/답변
(글 수 45,052)
아래와 같이 웹뷰에 postUrl을 사용하여 member_name값을 보내고 있는데
받는 쪽의 한글 데이터가 깨지네요
euc-kr 인코딩 문제 같아서 이리저리 바꿔서 하고 있는데 잘 안되는군요.
도움 부탁드리겠습니다.
String url = "http://xxx.co.kr/card.jsp"; String postData = ""; postData = "member_name="+"홍길동"+"&phone_no="+phone_no; mWebView = (WebView)findViewById( R.id.webview ); mWebView.getSettings().setSavePassword(false); mWebView.getSettings().setJavaScriptEnabled( true ); mWebView.setWebChromeClient( new WebChromeClient() ); mWebView.setWebViewClient ( new mWebViewClient() ); mWebView.postUrl(" url, EncodingUtils.getBytes(postData, "BASE64") );

2012.11.29 00:08:24
세 가지의 경우가 있습니다.
1. 사용하신 소스같이 eclipse 소스 내부에 문자열을 박아넣으시면 이 문자열은 기본적으로 eclipse encoding을 따릅니다.
추후에 별도의 인코딩을 거친다고 해도 기본 인코딩이 이클립스 베이스라고 생각하시면 됩니다.
2. 클라이언트와 서버같에 인코딩이 다를 경우입니다.
질문하신 분이 euc-kr로 인코딩 해서 보냈는데 서버에서 다른 문자열로 디코딩할 경우 입니다
3. 서버의 디폴트 인코딩 설정을 잘못했을 경우 입니다.
tomcat의 경우 사용하는 기본 인코딩 문자열이 있는데 이는 jsp나 servlet 단으로 가기 이전에 적용되는 디코딩 설정이므로
jsp 페이지등에서 아무리 문자열 설정을 바꿔봐야 소용 없습니다.
Request 객체 생성하셔서.
request.setheader... 어쩌구 이거에다가 encoding 타입을 설정해서 깨짐을 방지했던 기억이 있네요.