또 괴롭히네요.. 이노무 인코딩 문제 ㅠ
현재 안드로이드에서 JSP페이지로 요청을 보내면 그에 대한 응답으로 xml 페이지를 리턴하고 이걸 파싱해서 앱에서 보여주는걸 만들고 있습니다.
문제는 안드로이드에서 한글로 요청을 보내면 안먹힌다는 문제입니다.(영어는 되는군요..)
인코딩 문제죠...
안드로이드가 기본적으로 UTF-8이라고 들었습니다.
JSP 페이지에서 xml 데이터로 뿌려주는 페이지 인코딩 UTF-8로 했습니다.
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
<? xml version="1.0" encoding="UTF-8"?>
서버 DB도 UTF-8 인코딩 방식을 사용합니다.
그럼 인코딩이 동일하니.. 딱히 인코딩 변경할게 없지 않나요?
JSP 페이지에서 String name = request.getParameter("name");
이렇게 이름을 받아오는데.. 결과가 안나오네요 ㅠ
안드로이드서 이름을 영어로 전달하면 문제없이 결과가 출력됩니다 ㅠ
한글로 전달할 시만 결과가 안나옵니다. 참고로 get방식으로 데이터 전달합니다.
컴퓨터 웹에서도 확인해봤습니다.
익스플로러 주소창이 ISO-8859-1 인코딩으로 알고있습니다.
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"EUC-KR");
추가하니 웹에서는 한글도 제대로 출력해줍니다.
하다보니 이상한게 있었는데.. 원래 한글 인코딩은 EUC-KR이잖아요..
그래서 안드로이드에서 전달시 깨지는걸 UTF-8을 EUC-KR로 변경하면 되지 않을까 싶어서..
String name = new String(request.getParameter("name").getBytes("UTF-8"),"EUC-KR");
로 변경을 하면 되지 않을까.. 싶었는데 역시나 안되네요..
어떻게 해야 안드로이드에서도 한글을 전달할수 있을까요...
어렵네요.. 항상 인코딩 문제 ㅠㅠ
혹 안드로이드에서 데이터를 서버로 전송하실 때 쓰시는 Http 라이브러리가 캐릭터셑을 다르게 지정하거나 하지는 않는지 확인해 보세요.
헤더를 한번 검사해 보시고 헤더에 charset=utf-8 지정해서도 한번 해보시죠.
저는 더이상 한글 페이지는 손을 안대서 더 감이 안오네요.