본문 바로가기

프로그래밍/JAVA

java - mysql 한글 물음표 출력 해결법

반응형


운영체제: XP

데이타 베이스 : mysql 5.0

 

1.  jsp  파일상의   한글이 보이지 않는다면

<%@ page contentType ="text/html; charset=KSC5601"%>

<%@ page import="java.sql.*,dball.dbcon.*"%><==요거 위에다가 놓아야 함.왜그럴까?

 

2. jsp 와 db(mysql) 와의 연동하는데 한글이 문제라면

 

ㄱ. mysql 셋팅이 되어야 한다

 

 

 

도스창에서 디비에 로그인 하여 다음 명령을 실행한다

당연히 사용하는 디비를 use 해야 한다

..

mysql>show variables like 'c%';


- 결과
character_set_client : euckr

character_set_connection : euckr

character_set_database : euckr

character_set_results : euckr
character_set_server : euckr

character_set_system : euckr

collation_connection : euckr_general_ci
collation_database : euckr_general_ci
collation_server : euckr_general_ci


위와 같지 않다면 ....

mysql 폴더 밑에 my.ini 를 메모장으로 열어서 다음과 같은 문장이 없을 경우에

변경 또는 추가 해준다.

그리고나서 mysqld.exe를 눌러준다...다시 mysql 을 가동시켜주기위해서

 

[client]

port=3306

default-character-set=euckr <-- euckr로 변경

 

[mysql]

default-character-set=euckr <-- euckr로 변경

 

[mysqld]

init_connect=SET collation_connection = euckr_korean_ci <--추가
init_connect=SET NAMES euckr <--추가
default-character-set=euckr <--추가
character-set-server=euckr <--추가
collation-server=euckr_korean_ci <--추가


 

[mysqldump] <-- 없으면 아래와 같이 추가

default-character-set=euckr

 

그리고 다시 확인해두 안변했다..

 

그럼 도스창으로 다시 가서 직접변경해준다

 

mysql> SET character_set_client = euckr;
mysql> SET character_set_results = euckr;
mysql> SET character_set_connection = euckr;
mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET euckr;<==디비가 생성되어있는경우
 ㄴ. jsp 입력 페이지에서 HTML로부터 GET 또는 POST방식으로 넘겨온 값 받아서 넘겨주기 POST요건 쉽게 해결된다.. <%request.setCharacterEncoding("euc-kr"); 요거만 추가해주면 된다..ㅋㅋ..%>  GET 이 넘 땜시 열라 돌아 다녔다...ㅠㅠ...열시미 삽질두 하고...ㅋㅋ  아래의 소스 출처는 okjsp.pe.kr 에 jsp Q&A에 이용찬님 의 소스에서 걍 복사..ㅋㅋtoKorean() ====================요기는 디비에다가 질의를 보내는 부분===============<%jjj.executeUpdate(toKorean(query));%>===아래 함수를 디비 입력하는 페이지에 붙여 버린다..==사용해야 하니까.ㅋ==== <%!  String toKorean( String str ) {    if (str == null) return null;    try {      str = new String( str.getBytes("8859_1"), "euc-kr" );    } catch ( java.io.UnsupportedEncodingException e ) {      System.out.println( e.toString() );    }    return str;  }%>
이렇게 하니까 .... 한글이 잘 돌아 가던데요....ㅋㅋㅋㅋ

 

 

부연)) get 으로 넘긴경우는 저 함수로 사용하고

  post인경우는 사용하면 안된다..

결론은 두개를 동시에 사용하면 안된다는....;;

반응형