2013-11-03 1 views
0

DB에 액세스 할 때 놀람을 사용하는 게임용 앱에서 작업 중입니다. 난 아무것도 영어가 같은 것하지 다음 ?characterEncoding=UTF-8 부분을 제거하면 그래서 여기 내 application.confPlay 2.2 : DB와 관련된 application.conf 구성의 일부분을 이해하지 못함

db.default.driver=com.mysql.jdbc.Driver 
db.default.url="jdbc:mysql://localhost:3306/bubusik?characterEncoding=UTF-8" 
db.default.user=root 
db.default.password="*********" 

의 부분을 간다 ???????? DB에 물음표가 있습니다. 그래서이 설정을 정확하게 설정하는 것이 궁금합니다. 내 DB 스키마의 기본 문자 집합은 UTF-8뿐 아니라 모든 테이블에도 해당합니다.

답변

1

이 구성 파일의 일부는 응용 프로그램을 데이터베이스에 연결하는 JDBC 드라이버를 설정합니다. db.default.url은 MySql 데이터베이스에 대한 연결을 설정하는 데 사용됩니다. Java Virtual Machine에서 Play/Scala를 실행하므로 응용 프로그램은 UTF-16 인코딩으로 문자열을 보유합니다. characterEncoding 매개 변수는 데이터베이스에서 텍스트 문자열을 수신 할 것으로 예상하는 문자 집합을 정의합니다.

그래서? characterEncoding = UTF-8은 JDBC 요청을 보내기 전에 문자열을 UTF-16에서 UTF-8로 매핑해야한다고 드라이버 코드에 알립니다. to MySQL. 대상 인코딩이 데이터베이스의 인코딩과 일치하지 않으면 JDBC 요청의 문자열 형식이 잘못된 규칙 집합을 사용하여 디코딩됩니다.

자세한 내용은 Using Character Sets and Unicode

+0

완벽한 설명을 참조하십시오. 감사. 이 경우 디폴트 인코딩이 UTF-16이 될지는 몰랐습니다. –

관련 문제