기본 콘텐츠로 건너뛰기

jsp에서 java로 한글 깨짐

String acc_name = StringUtil.encodeURL((String) param.get("acc_name"), "UTF-8"); 1. 모든 문서는 UTF-8 인코딩으로 저장되어야 합니다. 에디트 플러스의 경우 도구 -> 기본설정 -> 파일 부분에서 새 파일 형식을 UTF-8 로 해놓음으로써 새파일 작성시 UTF-8을 기본으로 작성할수 있고, 이미 다른 인코딩 타입에서 작성된 문서인 경우 내용을 모조리 Ctrl+C로 복사후 문서 -> 인코딩 변경 로드에서 UTF-8로 변경후 다시 붙여넣기 하면 됩니다. 이클립스의 경우 Package Explorer 에서 프로젝트에서 우측 버튼을 누른 후 Properties->Info->Text file encoding->Other 을 UTF-8 로 잡아주면 됩니다. ( 기존 다른 인코딩 타입에서 작성된 문서 내부 한글은 모조리 깨지게 됨 ) * ascii 로 작성된 자바스크립트 파일을 utf 문서에서 불러와 수행시킬 경우 자바스크립트 에러 나는 문제도 있더군요.(한글 주석이 영향을 줬을수도...) 2. jsp 파일 상단에는 다음과 같은 방식으로 UTF-8 설정합니다. <%@ page contentType = "text/html;charset=utf-8" %> 3. 서블릿은 다음과 같은 방식으로 UTF-8을 설정합니다. request.setCharacterEncoding("utf-8") 4. 자바스크립트에서 encodeURIComponent 처리 및 톰캣 server.xml 의 설정 변경 위 1,2,3번의 방식으로 하면 post 방식의 데이터는 잘 받지만 get 방식의 데이터는 한글이 깨집니다. 이와 같은 경우 자바스크립트의 encodeURIComponent 함수와 server.xml 을 이용하여 처리하면 됩니다. 4.1 server.xml 톰캣 폴더의 conf 폴더에는 server.xml 파일이 존재합니다. 에디터로 열어보면 예) 값이 약간 틀릴수 있지만 초기 셋팅 값이 보통 저러하고, Connector 은 초기에 2개가 있는데 8080 포트 부분을 수정하면 됩니다. 수정하는 방법은 URIEncoding="UTF-8" 을 추가하면 됩니다. 예) 위와 같이 했다고 해결되는 것은 아닙니다. get 방식으로 데이터를 전송하면 자바 파일에서 확인 했을 경우 물음표 값만 넘어옵니다. get 방식으로 보낼 경우 자바스크립트로 변환을 해줍니다. 예를 들어 "한글"을 자바스크립트에서 처럼 encodeURIComponent 함수로 변환하게 되면 %ED%95%9C%EA%B8%80 으로 변환됩니다. 이 값을 주소에 "한글" 대신에 넣게 되면 자바에서 알아서 잘~ 받습니다 ^^ 5. HttpURLConnection 을 통하여 UTF-8 로 된 URL 을 읽을 경우. 다른 부분은 동일하고, BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); 로 변경합니다. 6. jsp -> bean 데이터 전송은 문제 없지만 jsp -> jsp 에서 한글이 깨진다면 받는 부분에서 String test = request.getParameter("test "); test = new String(test .getBytes("8859_1"), "UTF-8"); 처럼 변환해서 저장합니다. server.xml파일의 URIEncoding속성을 "utf-8"과 "euc-kr" 두가지로 jsp파일로만 테스트한 결과 모든 페이지의 상단에 <%@ page contentType = "text/html;charset=utf-8" %> //서블릿은 다음과 같은 방식으로 UTF-8을 설정합니다. //request.setCharacterEncoding("utf-8") 로 설정되어지면 되고 encodeURIComponent()를 사용하지 않아도 된다. 단. get방식으로 들어왔을경우는 new String(test .getBytes("8859_1"), "UTF-8"); 를 사용하여 변환하여 하며 get인지 post로 왔는지 체크는 request.getMethod()함수를 사용하여 알 수 있다. server.xml파일에서 URIEncoding속성을 변경하여 줄 필요성은 없는듯하다
get
post
//test.jsp <%@ page contentType = "text/html;charset=utf-8" %> <% request.setCharacterEncoding("utf-8");%> <%=request.getMethod()%> <% String test = request.getParameter("test"); if(request.getMethod().equals("GET")) test = new String(test .getBytes("8859_1"), "UTF-8"); String method = request.getParameter("method"); %> <%=test%>

댓글

이 블로그의 인기 게시물

win10 블루스크린 코드별 해결 방법들( 양이 너무 많네요 ㅠㅜ)

  컴퓨터를 사용 하면서 많은 경험을 하는데 늘 win와 함께하는 오류가 있습니다. 그것은 바로 다름 아닌 컴퓨터 사용자들에게 안정감을 주려고 블루 색상을 사용 해서 만든건지는 모르겠지만 마음에 평화보다는 불안감이 나타나는 화면 입니다. 컴퓨터를 재부팅을 하거나 아니면 안돌아오면 마지막 방법으로 포맷을 하게되는데 이 오류가 이렇게 많다는 거에 대해서 놀라움입니다. 일상에서 이렇게 많은 오류를 보기는 힘들지만 무슨 작업을 하든 만나게 되는 win와 뗄래야 뗄 수 없는 사이 실과 바늘 관계랄까. 블루스크린 입니다. 많기는 많네요 이거 만드는데도 엄청 걸렸겠는데요 찾기 단축키[Ctrl+F] 로 사용해서 찾아보세요 순서 블루스크린코드 내용 (클릭시 해결방법을 볼 수 있습니다.) 1 0x00000001 APC_INDEX_MISMATCH 2 0x00000002 DEVICE_QUEUE_NOT_BUSY 3 0x00000003 INVALID_AFFINITY_SET 4 0x00000004 INVALID_DATA_ACCESS_TRAP 5 0x00000005 INVALID_PROCESS_ATTACH_ATTEMPT 6 0x00000006 INVALID_PROCESS_DETACH_ATTEMPT 7 0x00000007 INVALID_SOFTWARE_INTERRUPT 8 0x00000008 IRQL_NOT_DISPATCH_LEVEL 9 0x00000009 IRQL_NOT_GREATER_OR_EQUAL 10 0x0000000A IRQL_NOT_LESS_OR_EQUAL 11 0x0000000B NO_EXCEPTION_HANDLING_SUPPORT 12 0x0000000C MAXIMUM_WAIT_OBJECTS_EXCEEDED 13 0x0000000D MUTEX_LEVEL_NUMBER_VIOLATION 14 0x0000000E NO_USER_MODE_CONTEXT 15 0x0000000F SPIN_LOCK_ALREADY_OWNED 16 0x00000010 SPIN_LOC...

서피스 프로3(Surface Pro 3) 부팅안됨(MS 서비스 종료)

서피스 프로3(Surface Pro 3)   평상시와 동일하게 작동을 하였는데      서피스 프로3(Surface Pro 3) 바이오스로 진입을 하는 경우 부팅 디스크에 문제가 있는 경우로 보여 집니다.         또한, 위와 같이 나오는 경우는 USB로 부팅을 시도 했는데 이런 경우는   USB를 UEFI방식으로 못만든 경우로 확인이 됩니다.   UEFI로 만드신 경우 정상적으로 부팅이 되어지십니다.     전원키와 +(사운드 볼륨업)키를 동시에 누르시면 위와 같이 나오며, 바이오스 진입전에 화면이 이렇게 나타납니다.   tel:010-4825-9129   서피스 프로3(Surface Pro 3)를 사용 하시는 분들에게 알려드리는 사항입니다..   금일 오후에 MS에 연락을 해보았습니다.   서피스 프로3(Surface Pro 3)제품은 2019년1월1일 부로 모든 서비스가 종료 되었습니다.   사용하시는 분들은 유의하여 사용 하여 주시기 바랍니다.   또한, 분해를 하시는 분들은 제품의 특성상 분해가 어려운점   분해시 디스플레이 파손 위험이 많이 높습니다.   아래 내용은 MS에서 메일로 보내주신 내용입니다.   자가 수리시 참고 하셔서 수리 하시기 바랍니다.   수리가 어려우신 분들은 연락 주시기 바랍니다.   컴퓨터 수리 24시 서울 경기 전지역 가능 010-4825-9129             안녕하세요 고객님 . Surface 지원 에 연락 주셔서 감사합니다.   [USB 복구 ...

스마트금융과(핀테크)

                                        □ 학과소개        모바일을 이용한 간편결제 확산, 가상화폐인 비트코인(Bitcoin)의 등장, 로보어드바이저(Robo-Advisor) 등      이미 현실에서는 핀테크가 일상 생활에 속속 들어오고 있습니다.      전 세계적으로 핀테크 산업에 대한 투자 규모가 증가하고 있으며, 이에 따라 국내 금융회사와 IT기업들은      다양한 핀테크 기술을 개발하고 있습니다. 블록체인 활용, 금융권 빅데이터 활성화, 금융권 공동 플랫폼 등        4차 산업혁명 대비 핀테크 기술 관련 현장에서 필요한 IT 기술인력을 양성하고 취업연계를 지원합니다.             □  협력/자문/취업처           □  활용 솔루션      □  수료생 후기                          ...