2010-08-12 4 views
2

영어가 아닌 문자 (페르시아어)가 포함 된 일부 mysql INSERT 쿼리를 실행해야하는 JSP 코드를 작성했습니다. 먼저 두 가지 유형의 쿼리를 실행합니다. 하나는 정적 응용 프로그램 설치 쿼리이고 다른 하나는 사용자 입력입니다. 두 가지 쿼리를 모두 실행 한 후에 영어가 아닌 문자는 "?"로 가져옵니다. 응용 프로그램 자체와 phpMyAdmin에서 확인합니다! JSP : mysql 쿼리에서 영어 이외의 문자 실행

내가 연결 한 후 다음 쿼리를 실행하려하지만 도움이되지 않았다 :

SET NAMES utf8 
SET CHARACTER SET utf8 
SET SESSION collation_connection = 'utf8_general_ci' 

문제가 무엇입니까? 어떻게 해결할 수 있습니까?

답변

2

두 쿼리 모두 실행 후 영어 문자는 "?"로 가져 오지 않습니다. 응용 프로그램 자체와 phpMyAdmin에서 확인합니다!

따라서 데이터베이스 (또는 특히 JDBC 드라이버)는 INSERT 동안 UTF-8을 사용하지 않습니다.

일반적으로 데이터베이스의 JDBC 드라이버는 데이터베이스 및/또는 테이블 지정 인코딩을 사용하여 데이터를 저장하기에 충분히 똑똑해야합니다. 그러나 어떤 경우에는 연결 문자열에 문자 인코딩을 지정해야합니다. 이것은 데이터베이스 지정 인코딩을 사용하지 않고 클라이언트 지정 인코딩을 사용하기 때문에 MySQL JDBC 드라이버의 경우에 해당됩니다. 구성 방법은 JDBC 드라이버 문서에서 이미 응답해야합니다. MySQL의 예를 들어 당신은 그것을 here를 읽을 수 있습니다 말했고,이 문제와 관련이없는


jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
, 당신은 실제로 JSP 파일에 avoid 원시 자바 코드를 시도해야합니다. 그것은 앞으로 또 다른 종류의 문제로 이어질 것입니다.

+0

효과가있었습니다. 고마워요! – RYN

+0

당신을 진심으로 환영합니다. – BalusC

관련 문제