java 에 대해서 한수 배우고자 합니당 ㅎ;; > 토크

토크

개발과 관련된 어떤 얘기도 괜찮습니다.

java 에 대해서 한수 배우고자 합니당 ㅎ;; 정보

개발자 java 에 대해서 한수 배우고자 합니당 ㅎ;;

본문

jsp -> 에서 mysql 쪽으로는 일반 글들은 아주 잘 인서트 됩니다 -_-;
 
문제점 : 한글 문자중에 ' 글자나 " 가 있는 경우.... 처리 방법이 없나요 ?
 
php 에선 addslashes 면 일단 급한불은 꺼지는데.... 참 난감하네요...
 
java 에선 preparedStatement 이 함수 사용 하라고 하는데 써보아도 깨져 나옴 ;;
 
음 치환해서 처리하면 어거지로는 되겠지만 그래도 뭔가 다른 방법이 있을듯 한데...
 
아시는 분께서는 한수 가르침을 ^^;; 부탁 드립니다.
 
추천
0
비추천
0
  • 복사

댓글 13개

하 명령폐인님께서 바로 답변 주실줄은 ^^ 미리 감사합니다.

아닙니다..  write.jsp 에서 그냥 textarea 필드에서 쓴 내용을 -> write_update.jsp 페이지에서 저장하는 부분 입니다.

mysql DB insert 시에 깨집니다... 

기존 자료야 import 해서 전 과정은 잘 모르겠고... 신자료를 웹상에서(jsp) 로 insert 해보는 중인데 ...

데이타 예 ) 주소지 입니다. -> 정상 입력 ;;

                주소지 ' 입니다 -> ????? '????? 

뭐 이런 형태가 되어 버립니다.

살살 머리가 아파오기 시작합니다. ㅠ.ㅠ
StringBuffer sql = new StringBuffer();

sql.append(" insert into 테이블명( WR_CONTENT ) values (?)" );

xxx.setString(1, wr_content );

오라클에선 이런식으로 했었습니다만
참고가 되실런지요
<%!
    // 8859_1을 KSC5601로 변환
    public String toKorean(String str) {
        String convStr = null;
        try {
            if(str == null)
                return "";

            // 현재문자열을 8859_1형식으로 읽어내어 KSC5601형식으로 변환
            convStr = new String(str.getBytes("8859_1"),"KSC5601");
        } catch (UnsupportedEncodingException e) {
        }
        return convStr;
    }
%>

자바로 푸셔야 할듯
흠..해괴한 경우군요. 깨질려면 다 깨져야지...
일단 mysql 용 jdbc 드라이버를 최신 버전으로 맞춰주시구요..
mysql의 db charset 과, connection charset 이 어떻게 되는지요?
상황에 따라서 mysql 환경설정을 바꿔야 할것 같기도 합니다.

자바에서 mysql 연결시 한글이 깨지는 문제는 JDBC 드라이버에 옵션을 줘서 처리합니다.
chat.url=jdbc:mysql://localhost/chat?useUnicode=true&characterEncoding=euckr
chatsetEncoding 은 해당 db의 캐릭터셋과 맞추시면 됩니다.
1) euc-kr : characterEncoding=euckr
2) utf-8 : characterEncoding=utf8
3) 그외 : characterEncoding=latin1
인코딩 문제 같습니다
일단 jsp 페이지 자체 저장 인코딩을 확인 하시구요
다른 부분은 깨지지 않는데 textarea만 깨지면 <pre></pre>
함수를 사용하시거나

위에 담장이님이 말씀해주신 대로 한글 컨버트를 하셔야 할 듯 한데요

컨버트 함수 문제가 아니면 페이지 인코딩 확인해 보세요
와웅 많은 분들께서 답변을 달아 주셔서 무지 감사 감사합니다 ^^

일단 주말에 몇번의 삽질을 겸해 보고....

결론은 무식 + 인코딩 문제가 제일 맞더라구용 ㅠ.ㅠ

1. 유찬 아빠 님의 방법을 써서 상당히 많은 부분에 도움이 되었습니다.
    정말 늦었지만 이 자리를 빌어서 감사 드립니다 ^^;

2. 명랑 폐인님의 말씀처럼 모든 캐릭셋을 JSP 쪽 mysql 쪽 전부 EUC-KR 로 바꾸었습니다.
    반쪽만 깨져서 의문을 참 많이 가졌는데 ㅠ.ㅠ
    정말 원인은 별거 아닌 JSP 페이지의 함수 한개더군요 ㅠ.ㅠ

3. 알찬 똘삐님 ㅠ.ㅠ preparestmt 이건 뭔지 아직 잘 몰겠더군요 ;;
    좀더 공부해 보고 적용을 해보도록 하겠습니다. ㅠ.ㅠ (무식이... ㅠ.ㅠ)

4. 날라리 개발자님 의 의견에 맞추어 ....
    몇번 시도해 보았으나 전부 한글이 깨지는 안타까운 사태가 발생하여....
     
    String sCont = request.getParameter("emo_cont");
    String kCont = new String(sCont.getByte("8859_1"),"EUC-KR");
   
    이렇게 맞추고 내용을 찍었더니 ... kCont 쪽에서 한글이 깨지는 사태가 발생하더라구용...

    그래서 그냥 ... 밀어 넣었는데 문제 안 발생할지 의문중인... (현재는 잘 되고 있는듯...)
 
    컨버터 함수는 일부러 제외하였습니다.  (뭐....잘 되니까 ;; ㅠ.ㅠ)

  <% request.setCharacterEncoding("euc-kr"); %> 이거만 대충 서서 .... 해보았습니다만...
  일단은 어거지로 먹히고 있습니다 ^^;; (또 어디선가 문제가 생기겠지만 그때는 좀더 나은 해결책을 찾아낼걸라 생각합니다 ^^;;

 현재 공부하는 부분중에서... 
 초보인 제가 참조하는 부분들입니다.. (책은 어디로 도망을 갔는지...)
  http://www.superuser.co.kr/jsp/index.htm
허허.. 정말 이해가 안가는 부분중에 하나입니다.

인코딩... 자바는 초기부터 인코딩에서 많은 분들이 애를 먹었습니다.
한국사람 누구(?) 만든 ijava라는 클래스가 있긴 했지만
언어셋이라는 낮선 단어가 사람들을 많이 힘들게 했었지요.
(mysql이 언어셋을 지원안하던터라 그때 당시)

10년이 넘게 지난 지금도 참 골치아프군요.
한가지 더 첨언 드리자면 jsp는 향후를 고려하셔서 utf-8로 하심이 그나마 좋다고 생각하는 1인 입니다.
건강이 우선입니다.
그리고 저도 중년입니다.^^
© SIRSOFT
현재 페이지 제일 처음으로